;buildInfoPackage: chisel3, version: 3.1-SNAPSHOT, scalaVersion: 2.11.7, sbtVersion: 0.13.12, builtAtString: 2018-02-06 00:35:48.108, builtAtMillis: 1517877348108
circuit CoreTester : 
  module CSR : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip stall : UInt<1>, flip cmd : UInt<3>, flip in : UInt<32>, out : UInt<32>, flip pc : UInt<32>, flip addr : UInt<32>, flip inst : UInt<32>, flip illegal : UInt<1>, flip st_type : UInt<2>, flip ld_type : UInt<3>, flip pc_check : UInt<1>, expt : UInt<1>, evec : UInt<32>, epc : UInt<32>, host : {flip fromhost : {valid : UInt<1>, bits : UInt<32>}, tohost : UInt<32>}}
    
    io is invalid
    io is invalid
    node csr_addr = bits(io.inst, 31, 20) @[CSR.scala 101:25]
    node rs1_addr = bits(io.inst, 19, 15) @[CSR.scala 102:25]
    reg time : UInt<32>, clock with : (reset => (reset, UInt<32>("h00"))) @[Reg.scala 26:44]
    reg timeh : UInt<32>, clock with : (reset => (reset, UInt<32>("h00"))) @[Reg.scala 26:44]
    reg cycle : UInt<32>, clock with : (reset => (reset, UInt<32>("h00"))) @[Reg.scala 26:44]
    reg cycleh : UInt<32>, clock with : (reset => (reset, UInt<32>("h00"))) @[Reg.scala 26:44]
    reg instret : UInt<32>, clock with : (reset => (reset, UInt<32>("h00"))) @[Reg.scala 26:44]
    reg instreth : UInt<32>, clock with : (reset => (reset, UInt<32>("h00"))) @[Reg.scala 26:44]
    node _T_53 = cat(UInt<2>("h00"), UInt<4>("h00")) @[Cat.scala 30:58]
    node mcpuid = cat(_T_53, UInt<26>("h0100100")) @[Cat.scala 30:58]
    reg PRV : UInt<2>, clock with : (reset => (reset, UInt<2>("h03"))) @[Reg.scala 26:44]
    reg PRV1 : UInt<2>, clock with : (reset => (reset, UInt<2>("h03"))) @[Reg.scala 26:44]
    reg IE : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 26:44]
    reg IE1 : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 26:44]
    node _T_93 = cat(IE1, PRV) @[Cat.scala 30:58]
    node _T_94 = cat(_T_93, IE) @[Cat.scala 30:58]
    node _T_95 = cat(UInt<1>("h00"), PRV1) @[Cat.scala 30:58]
    node _T_96 = cat(UInt<1>("h00"), UInt<2>("h00")) @[Cat.scala 30:58]
    node _T_97 = cat(_T_96, _T_95) @[Cat.scala 30:58]
    node _T_98 = cat(_T_97, _T_94) @[Cat.scala 30:58]
    node _T_99 = cat(UInt<2>("h00"), UInt<2>("h00")) @[Cat.scala 30:58]
    node _T_100 = cat(_T_99, UInt<2>("h00")) @[Cat.scala 30:58]
    node _T_101 = cat(UInt<5>("h00"), UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_102 = cat(UInt<1>("h00"), UInt<9>("h00")) @[Cat.scala 30:58]
    node _T_103 = cat(_T_102, _T_101) @[Cat.scala 30:58]
    node _T_104 = cat(_T_103, _T_100) @[Cat.scala 30:58]
    node mstatus = cat(_T_104, _T_98) @[Cat.scala 30:58]
    reg MTIP : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 26:44]
    reg MTIE : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 26:44]
    reg MSIP : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 26:44]
    reg MSIE : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 26:44]
    node _T_112 = cat(UInt<1>("h00"), UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_113 = cat(MSIP, UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_114 = cat(_T_113, _T_112) @[Cat.scala 30:58]
    node _T_115 = cat(UInt<1>("h00"), UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_116 = cat(UInt<24>("h00"), MTIP) @[Cat.scala 30:58]
    node _T_117 = cat(_T_116, UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_118 = cat(_T_117, _T_115) @[Cat.scala 30:58]
    node mip = cat(_T_118, _T_114) @[Cat.scala 30:58]
    node _T_122 = cat(UInt<1>("h00"), UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_123 = cat(MSIE, UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_124 = cat(_T_123, _T_122) @[Cat.scala 30:58]
    node _T_125 = cat(UInt<1>("h00"), UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_126 = cat(UInt<24>("h00"), MTIE) @[Cat.scala 30:58]
    node _T_127 = cat(_T_126, UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_128 = cat(_T_127, _T_125) @[Cat.scala 30:58]
    node mie = cat(_T_128, _T_124) @[Cat.scala 30:58]
    reg mtimecmp : UInt<32>, clock @[CSR.scala 155:21]
    reg mscratch : UInt<32>, clock @[CSR.scala 157:21]
    reg mepc : UInt<32>, clock @[CSR.scala 159:17]
    reg mcause : UInt<32>, clock @[CSR.scala 160:19]
    reg mbadaddr : UInt<32>, clock @[CSR.scala 161:21]
    reg mtohost : UInt<32>, clock with : (reset => (reset, UInt<32>("h00"))) @[Reg.scala 26:44]
    reg mfromhost : UInt<32>, clock @[CSR.scala 164:22]
    io.host.tohost <= mtohost @[CSR.scala 165:18]
    when io.host.fromhost.valid : @[CSR.scala 166:32]
      mfromhost <= io.host.fromhost.bits @[CSR.scala 167:15]
      skip @[CSR.scala 166:32]
    node _T_139 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_140 = eq(UInt<12>("h0c00"), _T_139) @[Lookup.scala 9:38]
    node _T_143 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_144 = eq(UInt<12>("h0c01"), _T_143) @[Lookup.scala 9:38]
    node _T_147 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_148 = eq(UInt<12>("h0c02"), _T_147) @[Lookup.scala 9:38]
    node _T_151 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_152 = eq(UInt<12>("h0c80"), _T_151) @[Lookup.scala 9:38]
    node _T_155 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_156 = eq(UInt<12>("h0c81"), _T_155) @[Lookup.scala 9:38]
    node _T_159 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_160 = eq(UInt<12>("h0c82"), _T_159) @[Lookup.scala 9:38]
    node _T_163 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_164 = eq(UInt<12>("h0900"), _T_163) @[Lookup.scala 9:38]
    node _T_167 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_168 = eq(UInt<12>("h0901"), _T_167) @[Lookup.scala 9:38]
    node _T_171 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_172 = eq(UInt<12>("h0902"), _T_171) @[Lookup.scala 9:38]
    node _T_175 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_176 = eq(UInt<12>("h0980"), _T_175) @[Lookup.scala 9:38]
    node _T_179 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_180 = eq(UInt<12>("h0981"), _T_179) @[Lookup.scala 9:38]
    node _T_183 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_184 = eq(UInt<12>("h0982"), _T_183) @[Lookup.scala 9:38]
    node _T_187 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_188 = eq(UInt<12>("h0f00"), _T_187) @[Lookup.scala 9:38]
    node _T_191 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_192 = eq(UInt<12>("h0f01"), _T_191) @[Lookup.scala 9:38]
    node _T_195 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_196 = eq(UInt<12>("h0f10"), _T_195) @[Lookup.scala 9:38]
    node _T_199 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_200 = eq(UInt<10>("h0301"), _T_199) @[Lookup.scala 9:38]
    node _T_203 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_204 = eq(UInt<10>("h0302"), _T_203) @[Lookup.scala 9:38]
    node _T_207 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_208 = eq(UInt<10>("h0304"), _T_207) @[Lookup.scala 9:38]
    node _T_211 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_212 = eq(UInt<10>("h0321"), _T_211) @[Lookup.scala 9:38]
    node _T_215 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_216 = eq(UInt<11>("h0701"), _T_215) @[Lookup.scala 9:38]
    node _T_219 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_220 = eq(UInt<11>("h0741"), _T_219) @[Lookup.scala 9:38]
    node _T_223 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_224 = eq(UInt<10>("h0340"), _T_223) @[Lookup.scala 9:38]
    node _T_227 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_228 = eq(UInt<10>("h0341"), _T_227) @[Lookup.scala 9:38]
    node _T_231 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_232 = eq(UInt<10>("h0342"), _T_231) @[Lookup.scala 9:38]
    node _T_235 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_236 = eq(UInt<10>("h0343"), _T_235) @[Lookup.scala 9:38]
    node _T_239 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_240 = eq(UInt<10>("h0344"), _T_239) @[Lookup.scala 9:38]
    node _T_243 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_244 = eq(UInt<11>("h0780"), _T_243) @[Lookup.scala 9:38]
    node _T_247 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_248 = eq(UInt<11>("h0781"), _T_247) @[Lookup.scala 9:38]
    node _T_251 = and(csr_addr, UInt<12>("h0fff")) @[Lookup.scala 9:38]
    node _T_252 = eq(UInt<10>("h0300"), _T_251) @[Lookup.scala 9:38]
    node _T_253 = mux(_T_252, mstatus, UInt<1>("h00")) @[Lookup.scala 11:37]
    node _T_254 = mux(_T_248, mfromhost, _T_253) @[Lookup.scala 11:37]
    node _T_255 = mux(_T_244, mtohost, _T_254) @[Lookup.scala 11:37]
    node _T_256 = mux(_T_240, mip, _T_255) @[Lookup.scala 11:37]
    node _T_257 = mux(_T_236, mbadaddr, _T_256) @[Lookup.scala 11:37]
    node _T_258 = mux(_T_232, mcause, _T_257) @[Lookup.scala 11:37]
    node _T_259 = mux(_T_228, mepc, _T_258) @[Lookup.scala 11:37]
    node _T_260 = mux(_T_224, mscratch, _T_259) @[Lookup.scala 11:37]
    node _T_261 = mux(_T_220, timeh, _T_260) @[Lookup.scala 11:37]
    node _T_262 = mux(_T_216, time, _T_261) @[Lookup.scala 11:37]
    node _T_263 = mux(_T_212, mtimecmp, _T_262) @[Lookup.scala 11:37]
    node _T_264 = mux(_T_208, mie, _T_263) @[Lookup.scala 11:37]
    node _T_265 = mux(_T_204, UInt<32>("h00"), _T_264) @[Lookup.scala 11:37]
    node _T_266 = mux(_T_200, UInt<32>("h0100"), _T_265) @[Lookup.scala 11:37]
    node _T_267 = mux(_T_196, UInt<32>("h00"), _T_266) @[Lookup.scala 11:37]
    node _T_268 = mux(_T_192, UInt<32>("h00"), _T_267) @[Lookup.scala 11:37]
    node _T_269 = mux(_T_188, mcpuid, _T_268) @[Lookup.scala 11:37]
    node _T_270 = mux(_T_184, instreth, _T_269) @[Lookup.scala 11:37]
    node _T_271 = mux(_T_180, timeh, _T_270) @[Lookup.scala 11:37]
    node _T_272 = mux(_T_176, cycleh, _T_271) @[Lookup.scala 11:37]
    node _T_273 = mux(_T_172, instret, _T_272) @[Lookup.scala 11:37]
    node _T_274 = mux(_T_168, time, _T_273) @[Lookup.scala 11:37]
    node _T_275 = mux(_T_164, cycle, _T_274) @[Lookup.scala 11:37]
    node _T_276 = mux(_T_160, instreth, _T_275) @[Lookup.scala 11:37]
    node _T_277 = mux(_T_156, timeh, _T_276) @[Lookup.scala 11:37]
    node _T_278 = mux(_T_152, cycleh, _T_277) @[Lookup.scala 11:37]
    node _T_279 = mux(_T_148, instret, _T_278) @[Lookup.scala 11:37]
    node _T_280 = mux(_T_144, time, _T_279) @[Lookup.scala 11:37]
    node _T_281 = mux(_T_140, cycle, _T_280) @[Lookup.scala 11:37]
    io.out <= _T_281 @[CSR.scala 202:10]
    node _T_282 = bits(csr_addr, 9, 8) @[CSR.scala 204:27]
    node privValid = leq(_T_282, PRV) @[CSR.scala 204:34]
    node privInst = eq(io.cmd, UInt<3>("h04")) @[CSR.scala 205:26]
    node _T_283 = bits(csr_addr, 0, 0) @[CSR.scala 206:40]
    node _T_285 = eq(_T_283, UInt<1>("h00")) @[CSR.scala 206:31]
    node _T_286 = and(privInst, _T_285) @[CSR.scala 206:28]
    node _T_287 = bits(csr_addr, 8, 8) @[CSR.scala 206:56]
    node _T_289 = eq(_T_287, UInt<1>("h00")) @[CSR.scala 206:47]
    node isEcall = and(_T_286, _T_289) @[CSR.scala 206:44]
    node _T_290 = bits(csr_addr, 0, 0) @[CSR.scala 207:40]
    node _T_291 = and(privInst, _T_290) @[CSR.scala 207:28]
    node _T_292 = bits(csr_addr, 8, 8) @[CSR.scala 207:56]
    node _T_294 = eq(_T_292, UInt<1>("h00")) @[CSR.scala 207:47]
    node isEbreak = and(_T_291, _T_294) @[CSR.scala 207:44]
    node _T_295 = bits(csr_addr, 0, 0) @[CSR.scala 208:40]
    node _T_297 = eq(_T_295, UInt<1>("h00")) @[CSR.scala 208:31]
    node _T_298 = and(privInst, _T_297) @[CSR.scala 208:28]
    node _T_299 = bits(csr_addr, 8, 8) @[CSR.scala 208:56]
    node isEret = and(_T_298, _T_299) @[CSR.scala 208:44]
    node _T_302 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_303 = eq(UInt<12>("h0c00"), _T_302) @[CSR.scala 209:37]
    node _T_306 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_307 = eq(UInt<12>("h0c01"), _T_306) @[CSR.scala 209:37]
    node _T_310 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_311 = eq(UInt<12>("h0c02"), _T_310) @[CSR.scala 209:37]
    node _T_314 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_315 = eq(UInt<12>("h0c80"), _T_314) @[CSR.scala 209:37]
    node _T_318 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_319 = eq(UInt<12>("h0c81"), _T_318) @[CSR.scala 209:37]
    node _T_322 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_323 = eq(UInt<12>("h0c82"), _T_322) @[CSR.scala 209:37]
    node _T_326 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_327 = eq(UInt<12>("h0900"), _T_326) @[CSR.scala 209:37]
    node _T_330 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_331 = eq(UInt<12>("h0901"), _T_330) @[CSR.scala 209:37]
    node _T_334 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_335 = eq(UInt<12>("h0902"), _T_334) @[CSR.scala 209:37]
    node _T_338 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_339 = eq(UInt<12>("h0980"), _T_338) @[CSR.scala 209:37]
    node _T_342 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_343 = eq(UInt<12>("h0981"), _T_342) @[CSR.scala 209:37]
    node _T_346 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_347 = eq(UInt<12>("h0982"), _T_346) @[CSR.scala 209:37]
    node _T_350 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_351 = eq(UInt<12>("h0f00"), _T_350) @[CSR.scala 209:37]
    node _T_354 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_355 = eq(UInt<12>("h0f01"), _T_354) @[CSR.scala 209:37]
    node _T_358 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_359 = eq(UInt<12>("h0f10"), _T_358) @[CSR.scala 209:37]
    node _T_362 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_363 = eq(UInt<10>("h0301"), _T_362) @[CSR.scala 209:37]
    node _T_366 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_367 = eq(UInt<10>("h0302"), _T_366) @[CSR.scala 209:37]
    node _T_370 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_371 = eq(UInt<10>("h0304"), _T_370) @[CSR.scala 209:37]
    node _T_374 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_375 = eq(UInt<10>("h0321"), _T_374) @[CSR.scala 209:37]
    node _T_378 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_379 = eq(UInt<11>("h0701"), _T_378) @[CSR.scala 209:37]
    node _T_382 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_383 = eq(UInt<11>("h0741"), _T_382) @[CSR.scala 209:37]
    node _T_386 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_387 = eq(UInt<10>("h0340"), _T_386) @[CSR.scala 209:37]
    node _T_390 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_391 = eq(UInt<10>("h0341"), _T_390) @[CSR.scala 209:37]
    node _T_394 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_395 = eq(UInt<10>("h0342"), _T_394) @[CSR.scala 209:37]
    node _T_398 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_399 = eq(UInt<10>("h0343"), _T_398) @[CSR.scala 209:37]
    node _T_402 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_403 = eq(UInt<10>("h0344"), _T_402) @[CSR.scala 209:37]
    node _T_406 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_407 = eq(UInt<11>("h0780"), _T_406) @[CSR.scala 209:37]
    node _T_410 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_411 = eq(UInt<11>("h0781"), _T_410) @[CSR.scala 209:37]
    node _T_414 = and(csr_addr, UInt<12>("h0fff")) @[CSR.scala 209:37]
    node _T_415 = eq(UInt<10>("h0300"), _T_414) @[CSR.scala 209:37]
    node _T_416 = or(_T_303, _T_307) @[CSR.scala 209:61]
    node _T_417 = or(_T_416, _T_311) @[CSR.scala 209:61]
    node _T_418 = or(_T_417, _T_315) @[CSR.scala 209:61]
    node _T_419 = or(_T_418, _T_319) @[CSR.scala 209:61]
    node _T_420 = or(_T_419, _T_323) @[CSR.scala 209:61]
    node _T_421 = or(_T_420, _T_327) @[CSR.scala 209:61]
    node _T_422 = or(_T_421, _T_331) @[CSR.scala 209:61]
    node _T_423 = or(_T_422, _T_335) @[CSR.scala 209:61]
    node _T_424 = or(_T_423, _T_339) @[CSR.scala 209:61]
    node _T_425 = or(_T_424, _T_343) @[CSR.scala 209:61]
    node _T_426 = or(_T_425, _T_347) @[CSR.scala 209:61]
    node _T_427 = or(_T_426, _T_351) @[CSR.scala 209:61]
    node _T_428 = or(_T_427, _T_355) @[CSR.scala 209:61]
    node _T_429 = or(_T_428, _T_359) @[CSR.scala 209:61]
    node _T_430 = or(_T_429, _T_363) @[CSR.scala 209:61]
    node _T_431 = or(_T_430, _T_367) @[CSR.scala 209:61]
    node _T_432 = or(_T_431, _T_371) @[CSR.scala 209:61]
    node _T_433 = or(_T_432, _T_375) @[CSR.scala 209:61]
    node _T_434 = or(_T_433, _T_379) @[CSR.scala 209:61]
    node _T_435 = or(_T_434, _T_383) @[CSR.scala 209:61]
    node _T_436 = or(_T_435, _T_387) @[CSR.scala 209:61]
    node _T_437 = or(_T_436, _T_391) @[CSR.scala 209:61]
    node _T_438 = or(_T_437, _T_395) @[CSR.scala 209:61]
    node _T_439 = or(_T_438, _T_399) @[CSR.scala 209:61]
    node _T_440 = or(_T_439, _T_403) @[CSR.scala 209:61]
    node _T_441 = or(_T_440, _T_407) @[CSR.scala 209:61]
    node _T_442 = or(_T_441, _T_411) @[CSR.scala 209:61]
    node csrValid = or(_T_442, _T_415) @[CSR.scala 209:61]
    node _T_443 = bits(csr_addr, 11, 10) @[CSR.scala 210:27]
    node _T_444 = not(_T_443) @[CSR.scala 210:36]
    node _T_446 = eq(_T_444, UInt<1>("h00")) @[CSR.scala 210:36]
    node _T_447 = eq(csr_addr, UInt<12>("h0301")) @[CSR.scala 210:53]
    node _T_448 = or(_T_446, _T_447) @[CSR.scala 210:41]
    node _T_449 = eq(csr_addr, UInt<12>("h0302")) @[CSR.scala 210:79]
    node csrRO = or(_T_448, _T_449) @[CSR.scala 210:67]
    node _T_450 = eq(io.cmd, UInt<3>("h01")) @[CSR.scala 211:26]
    node _T_451 = bits(io.cmd, 1, 1) @[CSR.scala 211:45]
    node _T_453 = neq(rs1_addr, UInt<1>("h00")) @[CSR.scala 211:61]
    node _T_454 = and(_T_451, _T_453) @[CSR.scala 211:49]
    node wen = or(_T_450, _T_454) @[CSR.scala 211:36]
    node _T_456 = or(io.out, io.in) @[CSR.scala 214:22]
    node _T_457 = not(io.in) @[CSR.scala 215:24]
    node _T_458 = and(io.out, _T_457) @[CSR.scala 215:22]
    node _T_459 = eq(UInt<3>("h03"), io.cmd) @[Mux.scala 46:19]
    node _T_460 = mux(_T_459, _T_458, UInt<1>("h00")) @[Mux.scala 46:16]
    node _T_461 = eq(UInt<3>("h02"), io.cmd) @[Mux.scala 46:19]
    node _T_462 = mux(_T_461, _T_456, _T_460) @[Mux.scala 46:16]
    node _T_463 = eq(UInt<3>("h01"), io.cmd) @[Mux.scala 46:19]
    node wdata = mux(_T_463, io.in, _T_462) @[Mux.scala 46:16]
    node _T_464 = bits(io.addr, 1, 1) @[CSR.scala 217:44]
    node iaddrInvalid = and(io.pc_check, _T_464) @[CSR.scala 217:34]
    node _T_519 = bits(io.addr, 1, 0) @[CSR.scala 219:29]
    node _T_521 = neq(_T_519, UInt<1>("h00")) @[CSR.scala 219:36]
    node _T_522 = bits(io.addr, 0, 0) @[CSR.scala 219:65]
    node _T_523 = bits(io.addr, 0, 0) @[CSR.scala 219:95]
    node _T_524 = eq(UInt<3>("h04"), io.ld_type) @[Mux.scala 46:19]
    node _T_525 = mux(_T_524, _T_523, UInt<1>("h00")) @[Mux.scala 46:16]
    node _T_526 = eq(UInt<3>("h02"), io.ld_type) @[Mux.scala 46:19]
    node _T_527 = mux(_T_526, _T_522, _T_525) @[Mux.scala 46:16]
    node _T_528 = eq(UInt<3>("h01"), io.ld_type) @[Mux.scala 46:19]
    node laddrInvalid = mux(_T_528, _T_521, _T_527) @[Mux.scala 46:16]
    node _T_530 = bits(io.addr, 1, 0) @[CSR.scala 221:29]
    node _T_532 = neq(_T_530, UInt<1>("h00")) @[CSR.scala 221:36]
    node _T_533 = bits(io.addr, 0, 0) @[CSR.scala 221:65]
    node _T_534 = eq(UInt<2>("h02"), io.st_type) @[Mux.scala 46:19]
    node _T_535 = mux(_T_534, _T_533, UInt<1>("h00")) @[Mux.scala 46:16]
    node _T_536 = eq(UInt<2>("h01"), io.st_type) @[Mux.scala 46:19]
    node saddrInvalid = mux(_T_536, _T_532, _T_535) @[Mux.scala 46:16]
    node _T_537 = or(io.illegal, iaddrInvalid) @[CSR.scala 222:25]
    node _T_538 = or(_T_537, laddrInvalid) @[CSR.scala 222:41]
    node _T_539 = or(_T_538, saddrInvalid) @[CSR.scala 222:57]
    node _T_540 = bits(io.cmd, 1, 0) @[CSR.scala 223:20]
    node _T_542 = neq(_T_540, UInt<1>("h00")) @[CSR.scala 223:27]
    node _T_544 = eq(csrValid, UInt<1>("h00")) @[CSR.scala 223:35]
    node _T_546 = eq(privValid, UInt<1>("h00")) @[CSR.scala 223:48]
    node _T_547 = or(_T_544, _T_546) @[CSR.scala 223:45]
    node _T_548 = and(_T_542, _T_547) @[CSR.scala 223:31]
    node _T_549 = or(_T_539, _T_548) @[CSR.scala 222:73]
    node _T_550 = and(wen, csrRO) @[CSR.scala 223:67]
    node _T_551 = or(_T_549, _T_550) @[CSR.scala 223:60]
    node _T_553 = eq(privValid, UInt<1>("h00")) @[CSR.scala 224:27]
    node _T_554 = and(privInst, _T_553) @[CSR.scala 224:24]
    node _T_555 = or(_T_551, _T_554) @[CSR.scala 223:76]
    node _T_556 = or(_T_555, isEcall) @[CSR.scala 224:39]
    node _T_557 = or(_T_556, isEbreak) @[CSR.scala 224:50]
    io.expt <= _T_557 @[CSR.scala 222:11]
    node _T_558 = shl(PRV, 6) @[CSR.scala 225:27]
    node _T_559 = add(UInt<32>("h0100"), _T_558) @[CSR.scala 225:20]
    node _T_560 = tail(_T_559, 1) @[CSR.scala 225:20]
    io.evec <= _T_560 @[CSR.scala 225:11]
    io.epc <= mepc @[CSR.scala 226:11]
    node _T_562 = add(time, UInt<1>("h01")) @[CSR.scala 229:16]
    node _T_563 = tail(_T_562, 1) @[CSR.scala 229:16]
    time <= _T_563 @[CSR.scala 229:8]
    node _T_564 = not(time) @[CSR.scala 230:13]
    node _T_566 = eq(_T_564, UInt<1>("h00")) @[CSR.scala 230:13]
    when _T_566 : @[CSR.scala 230:19]
      node _T_568 = add(timeh, UInt<1>("h01")) @[CSR.scala 230:36]
      node _T_569 = tail(_T_568, 1) @[CSR.scala 230:36]
      timeh <= _T_569 @[CSR.scala 230:27]
      skip @[CSR.scala 230:19]
    node _T_571 = add(cycle, UInt<1>("h01")) @[CSR.scala 231:18]
    node _T_572 = tail(_T_571, 1) @[CSR.scala 231:18]
    cycle <= _T_572 @[CSR.scala 231:9]
    node _T_573 = not(cycle) @[CSR.scala 232:14]
    node _T_575 = eq(_T_573, UInt<1>("h00")) @[CSR.scala 232:14]
    when _T_575 : @[CSR.scala 232:20]
      node _T_577 = add(cycleh, UInt<1>("h01")) @[CSR.scala 232:39]
      node _T_578 = tail(_T_577, 1) @[CSR.scala 232:39]
      cycleh <= _T_578 @[CSR.scala 232:29]
      skip @[CSR.scala 232:20]
    node _T_580 = neq(io.inst, UInt<32>("h013")) @[CSR.scala 233:27]
    node _T_582 = eq(io.expt, UInt<1>("h00")) @[CSR.scala 233:52]
    node _T_583 = or(_T_582, isEcall) @[CSR.scala 233:61]
    node _T_584 = or(_T_583, isEbreak) @[CSR.scala 233:72]
    node _T_585 = and(_T_580, _T_584) @[CSR.scala 233:48]
    node _T_587 = eq(io.stall, UInt<1>("h00")) @[CSR.scala 233:88]
    node isInstRet = and(_T_585, _T_587) @[CSR.scala 233:85]
    when isInstRet : @[CSR.scala 234:19]
      node _T_589 = add(instret, UInt<1>("h01")) @[CSR.scala 234:40]
      node _T_590 = tail(_T_589, 1) @[CSR.scala 234:40]
      instret <= _T_590 @[CSR.scala 234:29]
      skip @[CSR.scala 234:19]
    node _T_591 = not(instret) @[CSR.scala 235:29]
    node _T_593 = eq(_T_591, UInt<1>("h00")) @[CSR.scala 235:29]
    node _T_594 = and(isInstRet, _T_593) @[CSR.scala 235:18]
    when _T_594 : @[CSR.scala 235:35]
      node _T_596 = add(instreth, UInt<1>("h01")) @[CSR.scala 235:58]
      node _T_597 = tail(_T_596, 1) @[CSR.scala 235:58]
      instreth <= _T_597 @[CSR.scala 235:46]
      skip @[CSR.scala 235:35]
    node _T_599 = eq(io.stall, UInt<1>("h00")) @[CSR.scala 237:8]
    when _T_599 : @[CSR.scala 237:19]
      when io.expt : @[CSR.scala 238:19]
        node _T_600 = shr(io.pc, 2) @[CSR.scala 239:23]
        node _T_601 = shl(_T_600, 2) @[CSR.scala 239:28]
        mepc <= _T_601 @[CSR.scala 239:14]
        node _T_608 = add(UInt<4>("h08"), PRV) @[CSR.scala 243:47]
        node _T_609 = tail(_T_608, 1) @[CSR.scala 243:47]
        node _T_610 = mux(isEbreak, UInt<2>("h03"), UInt<2>("h02")) @[CSR.scala 244:20]
        node _T_611 = mux(isEcall, _T_609, _T_610) @[CSR.scala 243:20]
        node _T_612 = mux(saddrInvalid, UInt<3>("h06"), _T_611) @[CSR.scala 242:20]
        node _T_613 = mux(laddrInvalid, UInt<3>("h04"), _T_612) @[CSR.scala 241:20]
        node _T_614 = mux(iaddrInvalid, UInt<1>("h00"), _T_613) @[CSR.scala 240:20]
        mcause <= _T_614 @[CSR.scala 240:14]
        PRV <= UInt<2>("h03") @[CSR.scala 245:12]
        IE <= UInt<1>("h00") @[CSR.scala 246:12]
        PRV1 <= PRV @[CSR.scala 247:12]
        IE1 <= IE @[CSR.scala 248:12]
        node _T_616 = or(iaddrInvalid, laddrInvalid) @[CSR.scala 249:25]
        node _T_617 = or(_T_616, saddrInvalid) @[CSR.scala 249:41]
        when _T_617 : @[CSR.scala 249:58]
          mbadaddr <= io.addr @[CSR.scala 249:69]
          skip @[CSR.scala 249:58]
        skip @[CSR.scala 238:19]
      node _T_619 = eq(io.expt, UInt<1>("h00")) @[CSR.scala 238:19]
      node _T_620 = and(_T_619, isEret) @[CSR.scala 250:24]
      when _T_620 : @[CSR.scala 250:24]
        PRV <= PRV1 @[CSR.scala 251:12]
        IE <= IE1 @[CSR.scala 252:12]
        PRV1 <= UInt<2>("h00") @[CSR.scala 253:12]
        IE1 <= UInt<1>("h01") @[CSR.scala 254:12]
        skip @[CSR.scala 250:24]
      node _T_623 = eq(io.expt, UInt<1>("h00")) @[CSR.scala 238:19]
      node _T_625 = eq(isEret, UInt<1>("h00")) @[CSR.scala 250:24]
      node _T_626 = and(_T_623, _T_625) @[CSR.scala 250:24]
      node _T_627 = and(_T_626, wen) @[CSR.scala 255:21]
      when _T_627 : @[CSR.scala 255:21]
        node _T_628 = eq(csr_addr, UInt<12>("h0300")) @[CSR.scala 256:21]
        when _T_628 : @[CSR.scala 256:38]
          node _T_629 = bits(wdata, 5, 4) @[CSR.scala 257:22]
          PRV1 <= _T_629 @[CSR.scala 257:14]
          node _T_630 = bits(wdata, 3, 3) @[CSR.scala 258:22]
          IE1 <= _T_630 @[CSR.scala 258:14]
          node _T_631 = bits(wdata, 2, 1) @[CSR.scala 259:22]
          PRV <= _T_631 @[CSR.scala 259:14]
          node _T_632 = bits(wdata, 0, 0) @[CSR.scala 260:22]
          IE <= _T_632 @[CSR.scala 260:14]
          skip @[CSR.scala 256:38]
        node _T_633 = eq(csr_addr, UInt<12>("h0344")) @[CSR.scala 262:26]
        node _T_635 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_636 = and(_T_635, _T_633) @[CSR.scala 262:39]
        when _T_636 : @[CSR.scala 262:39]
          node _T_637 = bits(wdata, 7, 7) @[CSR.scala 263:22]
          MTIP <= _T_637 @[CSR.scala 263:14]
          node _T_638 = bits(wdata, 3, 3) @[CSR.scala 264:22]
          MSIP <= _T_638 @[CSR.scala 264:14]
          skip @[CSR.scala 262:39]
        node _T_639 = eq(csr_addr, UInt<12>("h0304")) @[CSR.scala 266:26]
        node _T_641 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_643 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_644 = and(_T_641, _T_643) @[CSR.scala 262:39]
        node _T_645 = and(_T_644, _T_639) @[CSR.scala 266:39]
        when _T_645 : @[CSR.scala 266:39]
          node _T_646 = bits(wdata, 7, 7) @[CSR.scala 267:22]
          MTIE <= _T_646 @[CSR.scala 267:14]
          node _T_647 = bits(wdata, 3, 3) @[CSR.scala 268:22]
          MSIE <= _T_647 @[CSR.scala 268:14]
          skip @[CSR.scala 266:39]
        node _T_648 = eq(csr_addr, UInt<12>("h0701")) @[CSR.scala 270:26]
        node _T_650 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_652 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_653 = and(_T_650, _T_652) @[CSR.scala 262:39]
        node _T_655 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_656 = and(_T_653, _T_655) @[CSR.scala 266:39]
        node _T_657 = and(_T_656, _T_648) @[CSR.scala 270:41]
        when _T_657 : @[CSR.scala 270:41]
          time <= wdata @[CSR.scala 270:48]
          skip @[CSR.scala 270:41]
        node _T_658 = eq(csr_addr, UInt<12>("h0741")) @[CSR.scala 271:26]
        node _T_660 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_662 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_663 = and(_T_660, _T_662) @[CSR.scala 262:39]
        node _T_665 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_666 = and(_T_663, _T_665) @[CSR.scala 266:39]
        node _T_668 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_669 = and(_T_666, _T_668) @[CSR.scala 270:41]
        node _T_670 = and(_T_669, _T_658) @[CSR.scala 271:42]
        when _T_670 : @[CSR.scala 271:42]
          timeh <= wdata @[CSR.scala 271:50]
          skip @[CSR.scala 271:42]
        node _T_671 = eq(csr_addr, UInt<12>("h0321")) @[CSR.scala 272:26]
        node _T_673 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_675 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_676 = and(_T_673, _T_675) @[CSR.scala 262:39]
        node _T_678 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_679 = and(_T_676, _T_678) @[CSR.scala 266:39]
        node _T_681 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_682 = and(_T_679, _T_681) @[CSR.scala 270:41]
        node _T_684 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_685 = and(_T_682, _T_684) @[CSR.scala 271:42]
        node _T_686 = and(_T_685, _T_671) @[CSR.scala 272:44]
        when _T_686 : @[CSR.scala 272:44]
          mtimecmp <= wdata @[CSR.scala 272:55]
          skip @[CSR.scala 272:44]
        node _T_687 = eq(csr_addr, UInt<12>("h0340")) @[CSR.scala 273:26]
        node _T_689 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_691 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_692 = and(_T_689, _T_691) @[CSR.scala 262:39]
        node _T_694 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_695 = and(_T_692, _T_694) @[CSR.scala 266:39]
        node _T_697 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_698 = and(_T_695, _T_697) @[CSR.scala 270:41]
        node _T_700 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_701 = and(_T_698, _T_700) @[CSR.scala 271:42]
        node _T_703 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_704 = and(_T_701, _T_703) @[CSR.scala 272:44]
        node _T_705 = and(_T_704, _T_687) @[CSR.scala 273:44]
        when _T_705 : @[CSR.scala 273:44]
          mscratch <= wdata @[CSR.scala 273:55]
          skip @[CSR.scala 273:44]
        node _T_706 = eq(csr_addr, UInt<12>("h0341")) @[CSR.scala 274:26]
        node _T_708 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_710 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_711 = and(_T_708, _T_710) @[CSR.scala 262:39]
        node _T_713 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_714 = and(_T_711, _T_713) @[CSR.scala 266:39]
        node _T_716 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_717 = and(_T_714, _T_716) @[CSR.scala 270:41]
        node _T_719 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_720 = and(_T_717, _T_719) @[CSR.scala 271:42]
        node _T_722 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_723 = and(_T_720, _T_722) @[CSR.scala 272:44]
        node _T_725 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_726 = and(_T_723, _T_725) @[CSR.scala 273:44]
        node _T_727 = and(_T_726, _T_706) @[CSR.scala 274:40]
        when _T_727 : @[CSR.scala 274:40]
          node _T_729 = dshr(wdata, UInt<2>("h02")) @[CSR.scala 274:56]
          node _T_731 = dshl(_T_729, UInt<2>("h02")) @[CSR.scala 274:63]
          mepc <= _T_731 @[CSR.scala 274:47]
          skip @[CSR.scala 274:40]
        node _T_732 = eq(csr_addr, UInt<12>("h0342")) @[CSR.scala 275:26]
        node _T_734 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_736 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_737 = and(_T_734, _T_736) @[CSR.scala 262:39]
        node _T_739 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_740 = and(_T_737, _T_739) @[CSR.scala 266:39]
        node _T_742 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_743 = and(_T_740, _T_742) @[CSR.scala 270:41]
        node _T_745 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_746 = and(_T_743, _T_745) @[CSR.scala 271:42]
        node _T_748 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_749 = and(_T_746, _T_748) @[CSR.scala 272:44]
        node _T_751 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_752 = and(_T_749, _T_751) @[CSR.scala 273:44]
        node _T_754 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_755 = and(_T_752, _T_754) @[CSR.scala 274:40]
        node _T_756 = and(_T_755, _T_732) @[CSR.scala 275:42]
        when _T_756 : @[CSR.scala 275:42]
          node _T_758 = and(wdata, UInt<32>("h08000000f")) @[CSR.scala 275:60]
          mcause <= _T_758 @[CSR.scala 275:51]
          skip @[CSR.scala 275:42]
        node _T_759 = eq(csr_addr, UInt<12>("h0343")) @[CSR.scala 276:26]
        node _T_761 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_763 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_764 = and(_T_761, _T_763) @[CSR.scala 262:39]
        node _T_766 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_767 = and(_T_764, _T_766) @[CSR.scala 266:39]
        node _T_769 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_770 = and(_T_767, _T_769) @[CSR.scala 270:41]
        node _T_772 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_773 = and(_T_770, _T_772) @[CSR.scala 271:42]
        node _T_775 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_776 = and(_T_773, _T_775) @[CSR.scala 272:44]
        node _T_778 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_779 = and(_T_776, _T_778) @[CSR.scala 273:44]
        node _T_781 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_782 = and(_T_779, _T_781) @[CSR.scala 274:40]
        node _T_784 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_785 = and(_T_782, _T_784) @[CSR.scala 275:42]
        node _T_786 = and(_T_785, _T_759) @[CSR.scala 276:44]
        when _T_786 : @[CSR.scala 276:44]
          mbadaddr <= wdata @[CSR.scala 276:55]
          skip @[CSR.scala 276:44]
        node _T_787 = eq(csr_addr, UInt<12>("h0780")) @[CSR.scala 277:26]
        node _T_789 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_791 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_792 = and(_T_789, _T_791) @[CSR.scala 262:39]
        node _T_794 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_795 = and(_T_792, _T_794) @[CSR.scala 266:39]
        node _T_797 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_798 = and(_T_795, _T_797) @[CSR.scala 270:41]
        node _T_800 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_801 = and(_T_798, _T_800) @[CSR.scala 271:42]
        node _T_803 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_804 = and(_T_801, _T_803) @[CSR.scala 272:44]
        node _T_806 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_807 = and(_T_804, _T_806) @[CSR.scala 273:44]
        node _T_809 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_810 = and(_T_807, _T_809) @[CSR.scala 274:40]
        node _T_812 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_813 = and(_T_810, _T_812) @[CSR.scala 275:42]
        node _T_815 = eq(_T_759, UInt<1>("h00")) @[CSR.scala 276:44]
        node _T_816 = and(_T_813, _T_815) @[CSR.scala 276:44]
        node _T_817 = and(_T_816, _T_787) @[CSR.scala 277:43]
        when _T_817 : @[CSR.scala 277:43]
          mtohost <= wdata @[CSR.scala 277:53]
          skip @[CSR.scala 277:43]
        node _T_818 = eq(csr_addr, UInt<12>("h0781")) @[CSR.scala 278:26]
        node _T_820 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_822 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_823 = and(_T_820, _T_822) @[CSR.scala 262:39]
        node _T_825 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_826 = and(_T_823, _T_825) @[CSR.scala 266:39]
        node _T_828 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_829 = and(_T_826, _T_828) @[CSR.scala 270:41]
        node _T_831 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_832 = and(_T_829, _T_831) @[CSR.scala 271:42]
        node _T_834 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_835 = and(_T_832, _T_834) @[CSR.scala 272:44]
        node _T_837 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_838 = and(_T_835, _T_837) @[CSR.scala 273:44]
        node _T_840 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_841 = and(_T_838, _T_840) @[CSR.scala 274:40]
        node _T_843 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_844 = and(_T_841, _T_843) @[CSR.scala 275:42]
        node _T_846 = eq(_T_759, UInt<1>("h00")) @[CSR.scala 276:44]
        node _T_847 = and(_T_844, _T_846) @[CSR.scala 276:44]
        node _T_849 = eq(_T_787, UInt<1>("h00")) @[CSR.scala 277:43]
        node _T_850 = and(_T_847, _T_849) @[CSR.scala 277:43]
        node _T_851 = and(_T_850, _T_818) @[CSR.scala 278:45]
        when _T_851 : @[CSR.scala 278:45]
          mfromhost <= wdata @[CSR.scala 278:57]
          skip @[CSR.scala 278:45]
        node _T_852 = eq(csr_addr, UInt<12>("h0900")) @[CSR.scala 279:26]
        node _T_854 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_856 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_857 = and(_T_854, _T_856) @[CSR.scala 262:39]
        node _T_859 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_860 = and(_T_857, _T_859) @[CSR.scala 266:39]
        node _T_862 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_863 = and(_T_860, _T_862) @[CSR.scala 270:41]
        node _T_865 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_866 = and(_T_863, _T_865) @[CSR.scala 271:42]
        node _T_868 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_869 = and(_T_866, _T_868) @[CSR.scala 272:44]
        node _T_871 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_872 = and(_T_869, _T_871) @[CSR.scala 273:44]
        node _T_874 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_875 = and(_T_872, _T_874) @[CSR.scala 274:40]
        node _T_877 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_878 = and(_T_875, _T_877) @[CSR.scala 275:42]
        node _T_880 = eq(_T_759, UInt<1>("h00")) @[CSR.scala 276:44]
        node _T_881 = and(_T_878, _T_880) @[CSR.scala 276:44]
        node _T_883 = eq(_T_787, UInt<1>("h00")) @[CSR.scala 277:43]
        node _T_884 = and(_T_881, _T_883) @[CSR.scala 277:43]
        node _T_886 = eq(_T_818, UInt<1>("h00")) @[CSR.scala 278:45]
        node _T_887 = and(_T_884, _T_886) @[CSR.scala 278:45]
        node _T_888 = and(_T_887, _T_852) @[CSR.scala 279:42]
        when _T_888 : @[CSR.scala 279:42]
          cycle <= wdata @[CSR.scala 279:50]
          skip @[CSR.scala 279:42]
        node _T_889 = eq(csr_addr, UInt<12>("h0901")) @[CSR.scala 280:26]
        node _T_891 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_893 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_894 = and(_T_891, _T_893) @[CSR.scala 262:39]
        node _T_896 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_897 = and(_T_894, _T_896) @[CSR.scala 266:39]
        node _T_899 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_900 = and(_T_897, _T_899) @[CSR.scala 270:41]
        node _T_902 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_903 = and(_T_900, _T_902) @[CSR.scala 271:42]
        node _T_905 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_906 = and(_T_903, _T_905) @[CSR.scala 272:44]
        node _T_908 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_909 = and(_T_906, _T_908) @[CSR.scala 273:44]
        node _T_911 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_912 = and(_T_909, _T_911) @[CSR.scala 274:40]
        node _T_914 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_915 = and(_T_912, _T_914) @[CSR.scala 275:42]
        node _T_917 = eq(_T_759, UInt<1>("h00")) @[CSR.scala 276:44]
        node _T_918 = and(_T_915, _T_917) @[CSR.scala 276:44]
        node _T_920 = eq(_T_787, UInt<1>("h00")) @[CSR.scala 277:43]
        node _T_921 = and(_T_918, _T_920) @[CSR.scala 277:43]
        node _T_923 = eq(_T_818, UInt<1>("h00")) @[CSR.scala 278:45]
        node _T_924 = and(_T_921, _T_923) @[CSR.scala 278:45]
        node _T_926 = eq(_T_852, UInt<1>("h00")) @[CSR.scala 279:42]
        node _T_927 = and(_T_924, _T_926) @[CSR.scala 279:42]
        node _T_928 = and(_T_927, _T_889) @[CSR.scala 280:41]
        when _T_928 : @[CSR.scala 280:41]
          time <= wdata @[CSR.scala 280:48]
          skip @[CSR.scala 280:41]
        node _T_929 = eq(csr_addr, UInt<12>("h0902")) @[CSR.scala 281:26]
        node _T_931 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_933 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_934 = and(_T_931, _T_933) @[CSR.scala 262:39]
        node _T_936 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_937 = and(_T_934, _T_936) @[CSR.scala 266:39]
        node _T_939 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_940 = and(_T_937, _T_939) @[CSR.scala 270:41]
        node _T_942 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_943 = and(_T_940, _T_942) @[CSR.scala 271:42]
        node _T_945 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_946 = and(_T_943, _T_945) @[CSR.scala 272:44]
        node _T_948 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_949 = and(_T_946, _T_948) @[CSR.scala 273:44]
        node _T_951 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_952 = and(_T_949, _T_951) @[CSR.scala 274:40]
        node _T_954 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_955 = and(_T_952, _T_954) @[CSR.scala 275:42]
        node _T_957 = eq(_T_759, UInt<1>("h00")) @[CSR.scala 276:44]
        node _T_958 = and(_T_955, _T_957) @[CSR.scala 276:44]
        node _T_960 = eq(_T_787, UInt<1>("h00")) @[CSR.scala 277:43]
        node _T_961 = and(_T_958, _T_960) @[CSR.scala 277:43]
        node _T_963 = eq(_T_818, UInt<1>("h00")) @[CSR.scala 278:45]
        node _T_964 = and(_T_961, _T_963) @[CSR.scala 278:45]
        node _T_966 = eq(_T_852, UInt<1>("h00")) @[CSR.scala 279:42]
        node _T_967 = and(_T_964, _T_966) @[CSR.scala 279:42]
        node _T_969 = eq(_T_889, UInt<1>("h00")) @[CSR.scala 280:41]
        node _T_970 = and(_T_967, _T_969) @[CSR.scala 280:41]
        node _T_971 = and(_T_970, _T_929) @[CSR.scala 281:44]
        when _T_971 : @[CSR.scala 281:44]
          instret <= wdata @[CSR.scala 281:54]
          skip @[CSR.scala 281:44]
        node _T_972 = eq(csr_addr, UInt<12>("h0980")) @[CSR.scala 282:26]
        node _T_974 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_976 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_977 = and(_T_974, _T_976) @[CSR.scala 262:39]
        node _T_979 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_980 = and(_T_977, _T_979) @[CSR.scala 266:39]
        node _T_982 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_983 = and(_T_980, _T_982) @[CSR.scala 270:41]
        node _T_985 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_986 = and(_T_983, _T_985) @[CSR.scala 271:42]
        node _T_988 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_989 = and(_T_986, _T_988) @[CSR.scala 272:44]
        node _T_991 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_992 = and(_T_989, _T_991) @[CSR.scala 273:44]
        node _T_994 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_995 = and(_T_992, _T_994) @[CSR.scala 274:40]
        node _T_997 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_998 = and(_T_995, _T_997) @[CSR.scala 275:42]
        node _T_1000 = eq(_T_759, UInt<1>("h00")) @[CSR.scala 276:44]
        node _T_1001 = and(_T_998, _T_1000) @[CSR.scala 276:44]
        node _T_1003 = eq(_T_787, UInt<1>("h00")) @[CSR.scala 277:43]
        node _T_1004 = and(_T_1001, _T_1003) @[CSR.scala 277:43]
        node _T_1006 = eq(_T_818, UInt<1>("h00")) @[CSR.scala 278:45]
        node _T_1007 = and(_T_1004, _T_1006) @[CSR.scala 278:45]
        node _T_1009 = eq(_T_852, UInt<1>("h00")) @[CSR.scala 279:42]
        node _T_1010 = and(_T_1007, _T_1009) @[CSR.scala 279:42]
        node _T_1012 = eq(_T_889, UInt<1>("h00")) @[CSR.scala 280:41]
        node _T_1013 = and(_T_1010, _T_1012) @[CSR.scala 280:41]
        node _T_1015 = eq(_T_929, UInt<1>("h00")) @[CSR.scala 281:44]
        node _T_1016 = and(_T_1013, _T_1015) @[CSR.scala 281:44]
        node _T_1017 = and(_T_1016, _T_972) @[CSR.scala 282:43]
        when _T_1017 : @[CSR.scala 282:43]
          cycleh <= wdata @[CSR.scala 282:52]
          skip @[CSR.scala 282:43]
        node _T_1018 = eq(csr_addr, UInt<12>("h0981")) @[CSR.scala 283:26]
        node _T_1020 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_1022 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_1023 = and(_T_1020, _T_1022) @[CSR.scala 262:39]
        node _T_1025 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_1026 = and(_T_1023, _T_1025) @[CSR.scala 266:39]
        node _T_1028 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_1029 = and(_T_1026, _T_1028) @[CSR.scala 270:41]
        node _T_1031 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_1032 = and(_T_1029, _T_1031) @[CSR.scala 271:42]
        node _T_1034 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_1035 = and(_T_1032, _T_1034) @[CSR.scala 272:44]
        node _T_1037 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_1038 = and(_T_1035, _T_1037) @[CSR.scala 273:44]
        node _T_1040 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_1041 = and(_T_1038, _T_1040) @[CSR.scala 274:40]
        node _T_1043 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_1044 = and(_T_1041, _T_1043) @[CSR.scala 275:42]
        node _T_1046 = eq(_T_759, UInt<1>("h00")) @[CSR.scala 276:44]
        node _T_1047 = and(_T_1044, _T_1046) @[CSR.scala 276:44]
        node _T_1049 = eq(_T_787, UInt<1>("h00")) @[CSR.scala 277:43]
        node _T_1050 = and(_T_1047, _T_1049) @[CSR.scala 277:43]
        node _T_1052 = eq(_T_818, UInt<1>("h00")) @[CSR.scala 278:45]
        node _T_1053 = and(_T_1050, _T_1052) @[CSR.scala 278:45]
        node _T_1055 = eq(_T_852, UInt<1>("h00")) @[CSR.scala 279:42]
        node _T_1056 = and(_T_1053, _T_1055) @[CSR.scala 279:42]
        node _T_1058 = eq(_T_889, UInt<1>("h00")) @[CSR.scala 280:41]
        node _T_1059 = and(_T_1056, _T_1058) @[CSR.scala 280:41]
        node _T_1061 = eq(_T_929, UInt<1>("h00")) @[CSR.scala 281:44]
        node _T_1062 = and(_T_1059, _T_1061) @[CSR.scala 281:44]
        node _T_1064 = eq(_T_972, UInt<1>("h00")) @[CSR.scala 282:43]
        node _T_1065 = and(_T_1062, _T_1064) @[CSR.scala 282:43]
        node _T_1066 = and(_T_1065, _T_1018) @[CSR.scala 283:42]
        when _T_1066 : @[CSR.scala 283:42]
          timeh <= wdata @[CSR.scala 283:50]
          skip @[CSR.scala 283:42]
        node _T_1067 = eq(csr_addr, UInt<12>("h0982")) @[CSR.scala 284:26]
        node _T_1069 = eq(_T_628, UInt<1>("h00")) @[CSR.scala 256:38]
        node _T_1071 = eq(_T_633, UInt<1>("h00")) @[CSR.scala 262:39]
        node _T_1072 = and(_T_1069, _T_1071) @[CSR.scala 262:39]
        node _T_1074 = eq(_T_639, UInt<1>("h00")) @[CSR.scala 266:39]
        node _T_1075 = and(_T_1072, _T_1074) @[CSR.scala 266:39]
        node _T_1077 = eq(_T_648, UInt<1>("h00")) @[CSR.scala 270:41]
        node _T_1078 = and(_T_1075, _T_1077) @[CSR.scala 270:41]
        node _T_1080 = eq(_T_658, UInt<1>("h00")) @[CSR.scala 271:42]
        node _T_1081 = and(_T_1078, _T_1080) @[CSR.scala 271:42]
        node _T_1083 = eq(_T_671, UInt<1>("h00")) @[CSR.scala 272:44]
        node _T_1084 = and(_T_1081, _T_1083) @[CSR.scala 272:44]
        node _T_1086 = eq(_T_687, UInt<1>("h00")) @[CSR.scala 273:44]
        node _T_1087 = and(_T_1084, _T_1086) @[CSR.scala 273:44]
        node _T_1089 = eq(_T_706, UInt<1>("h00")) @[CSR.scala 274:40]
        node _T_1090 = and(_T_1087, _T_1089) @[CSR.scala 274:40]
        node _T_1092 = eq(_T_732, UInt<1>("h00")) @[CSR.scala 275:42]
        node _T_1093 = and(_T_1090, _T_1092) @[CSR.scala 275:42]
        node _T_1095 = eq(_T_759, UInt<1>("h00")) @[CSR.scala 276:44]
        node _T_1096 = and(_T_1093, _T_1095) @[CSR.scala 276:44]
        node _T_1098 = eq(_T_787, UInt<1>("h00")) @[CSR.scala 277:43]
        node _T_1099 = and(_T_1096, _T_1098) @[CSR.scala 277:43]
        node _T_1101 = eq(_T_818, UInt<1>("h00")) @[CSR.scala 278:45]
        node _T_1102 = and(_T_1099, _T_1101) @[CSR.scala 278:45]
        node _T_1104 = eq(_T_852, UInt<1>("h00")) @[CSR.scala 279:42]
        node _T_1105 = and(_T_1102, _T_1104) @[CSR.scala 279:42]
        node _T_1107 = eq(_T_889, UInt<1>("h00")) @[CSR.scala 280:41]
        node _T_1108 = and(_T_1105, _T_1107) @[CSR.scala 280:41]
        node _T_1110 = eq(_T_929, UInt<1>("h00")) @[CSR.scala 281:44]
        node _T_1111 = and(_T_1108, _T_1110) @[CSR.scala 281:44]
        node _T_1113 = eq(_T_972, UInt<1>("h00")) @[CSR.scala 282:43]
        node _T_1114 = and(_T_1111, _T_1113) @[CSR.scala 282:43]
        node _T_1116 = eq(_T_1018, UInt<1>("h00")) @[CSR.scala 283:42]
        node _T_1117 = and(_T_1114, _T_1116) @[CSR.scala 283:42]
        node _T_1118 = and(_T_1117, _T_1067) @[CSR.scala 284:45]
        when _T_1118 : @[CSR.scala 284:45]
          instreth <= wdata @[CSR.scala 284:56]
          skip @[CSR.scala 284:45]
        skip @[CSR.scala 255:21]
      skip @[CSR.scala 237:19]
    
  module RegFile : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip raddr1 : UInt<5>, flip raddr2 : UInt<5>, rdata1 : UInt<32>, rdata2 : UInt<32>, flip wen : UInt<1>, flip waddr : UInt<5>, flip wdata : UInt<32>}
    
    io is invalid
    io is invalid
    cmem regs : UInt<32>[32] @[RegFile.scala 20:17]
    node _T_19 = neq(io.raddr1, UInt<1>("h00")) @[RegFile.scala 21:30]
    infer mport _T_20 = regs[io.raddr1], clock
    node _T_22 = mux(_T_19, _T_20, UInt<1>("h00")) @[RegFile.scala 21:19]
    io.rdata1 <= _T_22 @[RegFile.scala 21:13]
    node _T_24 = neq(io.raddr2, UInt<1>("h00")) @[RegFile.scala 22:30]
    infer mport _T_25 = regs[io.raddr2], clock
    node _T_27 = mux(_T_24, _T_25, UInt<1>("h00")) @[RegFile.scala 22:19]
    io.rdata2 <= _T_27 @[RegFile.scala 22:13]
    node _T_29 = neq(io.waddr, UInt<1>("h00")) @[RegFile.scala 23:26]
    node _T_30 = and(io.wen, _T_29) @[RegFile.scala 23:15]
    when _T_30 : @[RegFile.scala 23:31]
      infer mport _T_31 = regs[io.waddr], clock
      _T_31 <= io.wdata @[RegFile.scala 24:20]
      skip @[RegFile.scala 23:31]
    
  module ALUArea : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip A : UInt<32>, flip B : UInt<32>, flip alu_op : UInt<4>, out : UInt<32>, sum : UInt<32>}
    
    io is invalid
    io is invalid
    node _T_12 = bits(io.alu_op, 0, 0) @[ALU.scala 59:33]
    node _T_14 = sub(UInt<1>("h00"), io.B) @[ALU.scala 59:38]
    node _T_15 = tail(_T_14, 1) @[ALU.scala 59:38]
    node _T_16 = mux(_T_12, _T_15, io.B) @[ALU.scala 59:23]
    node _T_17 = add(io.A, _T_16) @[ALU.scala 59:18]
    node sum = tail(_T_17, 1) @[ALU.scala 59:18]
    node _T_18 = bits(io.A, 31, 31) @[ALU.scala 60:21]
    node _T_19 = bits(io.B, 31, 31) @[ALU.scala 60:38]
    node _T_20 = eq(_T_18, _T_19) @[ALU.scala 60:30]
    node _T_21 = bits(sum, 31, 31) @[ALU.scala 60:51]
    node _T_22 = bits(io.alu_op, 1, 1) @[ALU.scala 61:26]
    node _T_23 = bits(io.B, 31, 31) @[ALU.scala 61:35]
    node _T_24 = bits(io.A, 31, 31) @[ALU.scala 61:49]
    node _T_25 = mux(_T_22, _T_23, _T_24) @[ALU.scala 61:16]
    node cmp = mux(_T_20, _T_21, _T_25) @[ALU.scala 60:16]
    node shamt = bits(io.B, 4, 0) @[ALU.scala 62:20]
    node _T_26 = bits(io.alu_op, 3, 3) @[ALU.scala 63:29]
    node _T_29 = shl(UInt<16>("h0ffff"), 16) @[Bitwise.scala 101:47]
    node _T_30 = xor(UInt<32>("h0ffffffff"), _T_29) @[Bitwise.scala 101:21]
    node _T_31 = shr(io.A, 16) @[Bitwise.scala 102:21]
    node _T_32 = and(_T_31, _T_30) @[Bitwise.scala 102:31]
    node _T_33 = bits(io.A, 15, 0) @[Bitwise.scala 102:46]
    node _T_34 = shl(_T_33, 16) @[Bitwise.scala 102:65]
    node _T_35 = not(_T_30) @[Bitwise.scala 102:77]
    node _T_36 = and(_T_34, _T_35) @[Bitwise.scala 102:75]
    node _T_37 = or(_T_32, _T_36) @[Bitwise.scala 102:39]
    node _T_38 = bits(_T_30, 23, 0) @[Bitwise.scala 101:28]
    node _T_39 = shl(_T_38, 8) @[Bitwise.scala 101:47]
    node _T_40 = xor(_T_30, _T_39) @[Bitwise.scala 101:21]
    node _T_41 = shr(_T_37, 8) @[Bitwise.scala 102:21]
    node _T_42 = and(_T_41, _T_40) @[Bitwise.scala 102:31]
    node _T_43 = bits(_T_37, 23, 0) @[Bitwise.scala 102:46]
    node _T_44 = shl(_T_43, 8) @[Bitwise.scala 102:65]
    node _T_45 = not(_T_40) @[Bitwise.scala 102:77]
    node _T_46 = and(_T_44, _T_45) @[Bitwise.scala 102:75]
    node _T_47 = or(_T_42, _T_46) @[Bitwise.scala 102:39]
    node _T_48 = bits(_T_40, 27, 0) @[Bitwise.scala 101:28]
    node _T_49 = shl(_T_48, 4) @[Bitwise.scala 101:47]
    node _T_50 = xor(_T_40, _T_49) @[Bitwise.scala 101:21]
    node _T_51 = shr(_T_47, 4) @[Bitwise.scala 102:21]
    node _T_52 = and(_T_51, _T_50) @[Bitwise.scala 102:31]
    node _T_53 = bits(_T_47, 27, 0) @[Bitwise.scala 102:46]
    node _T_54 = shl(_T_53, 4) @[Bitwise.scala 102:65]
    node _T_55 = not(_T_50) @[Bitwise.scala 102:77]
    node _T_56 = and(_T_54, _T_55) @[Bitwise.scala 102:75]
    node _T_57 = or(_T_52, _T_56) @[Bitwise.scala 102:39]
    node _T_58 = bits(_T_50, 29, 0) @[Bitwise.scala 101:28]
    node _T_59 = shl(_T_58, 2) @[Bitwise.scala 101:47]
    node _T_60 = xor(_T_50, _T_59) @[Bitwise.scala 101:21]
    node _T_61 = shr(_T_57, 2) @[Bitwise.scala 102:21]
    node _T_62 = and(_T_61, _T_60) @[Bitwise.scala 102:31]
    node _T_63 = bits(_T_57, 29, 0) @[Bitwise.scala 102:46]
    node _T_64 = shl(_T_63, 2) @[Bitwise.scala 102:65]
    node _T_65 = not(_T_60) @[Bitwise.scala 102:77]
    node _T_66 = and(_T_64, _T_65) @[Bitwise.scala 102:75]
    node _T_67 = or(_T_62, _T_66) @[Bitwise.scala 102:39]
    node _T_68 = bits(_T_60, 30, 0) @[Bitwise.scala 101:28]
    node _T_69 = shl(_T_68, 1) @[Bitwise.scala 101:47]
    node _T_70 = xor(_T_60, _T_69) @[Bitwise.scala 101:21]
    node _T_71 = shr(_T_67, 1) @[Bitwise.scala 102:21]
    node _T_72 = and(_T_71, _T_70) @[Bitwise.scala 102:31]
    node _T_73 = bits(_T_67, 30, 0) @[Bitwise.scala 102:46]
    node _T_74 = shl(_T_73, 1) @[Bitwise.scala 102:65]
    node _T_75 = not(_T_70) @[Bitwise.scala 102:77]
    node _T_76 = and(_T_74, _T_75) @[Bitwise.scala 102:75]
    node _T_77 = or(_T_72, _T_76) @[Bitwise.scala 102:39]
    node shin = mux(_T_26, io.A, _T_77) @[ALU.scala 63:19]
    node _T_78 = bits(io.alu_op, 0, 0) @[ALU.scala 64:30]
    node _T_79 = bits(shin, 31, 31) @[ALU.scala 64:41]
    node _T_80 = and(_T_78, _T_79) @[ALU.scala 64:34]
    node _T_81 = cat(_T_80, shin) @[Cat.scala 30:58]
    node _T_82 = asSInt(_T_81) @[ALU.scala 64:57]
    node _T_83 = dshr(_T_82, shamt) @[ALU.scala 64:64]
    node shiftr = bits(_T_83, 31, 0) @[ALU.scala 64:73]
    node _T_86 = shl(UInt<16>("h0ffff"), 16) @[Bitwise.scala 101:47]
    node _T_87 = xor(UInt<32>("h0ffffffff"), _T_86) @[Bitwise.scala 101:21]
    node _T_88 = shr(shiftr, 16) @[Bitwise.scala 102:21]
    node _T_89 = and(_T_88, _T_87) @[Bitwise.scala 102:31]
    node _T_90 = bits(shiftr, 15, 0) @[Bitwise.scala 102:46]
    node _T_91 = shl(_T_90, 16) @[Bitwise.scala 102:65]
    node _T_92 = not(_T_87) @[Bitwise.scala 102:77]
    node _T_93 = and(_T_91, _T_92) @[Bitwise.scala 102:75]
    node _T_94 = or(_T_89, _T_93) @[Bitwise.scala 102:39]
    node _T_95 = bits(_T_87, 23, 0) @[Bitwise.scala 101:28]
    node _T_96 = shl(_T_95, 8) @[Bitwise.scala 101:47]
    node _T_97 = xor(_T_87, _T_96) @[Bitwise.scala 101:21]
    node _T_98 = shr(_T_94, 8) @[Bitwise.scala 102:21]
    node _T_99 = and(_T_98, _T_97) @[Bitwise.scala 102:31]
    node _T_100 = bits(_T_94, 23, 0) @[Bitwise.scala 102:46]
    node _T_101 = shl(_T_100, 8) @[Bitwise.scala 102:65]
    node _T_102 = not(_T_97) @[Bitwise.scala 102:77]
    node _T_103 = and(_T_101, _T_102) @[Bitwise.scala 102:75]
    node _T_104 = or(_T_99, _T_103) @[Bitwise.scala 102:39]
    node _T_105 = bits(_T_97, 27, 0) @[Bitwise.scala 101:28]
    node _T_106 = shl(_T_105, 4) @[Bitwise.scala 101:47]
    node _T_107 = xor(_T_97, _T_106) @[Bitwise.scala 101:21]
    node _T_108 = shr(_T_104, 4) @[Bitwise.scala 102:21]
    node _T_109 = and(_T_108, _T_107) @[Bitwise.scala 102:31]
    node _T_110 = bits(_T_104, 27, 0) @[Bitwise.scala 102:46]
    node _T_111 = shl(_T_110, 4) @[Bitwise.scala 102:65]
    node _T_112 = not(_T_107) @[Bitwise.scala 102:77]
    node _T_113 = and(_T_111, _T_112) @[Bitwise.scala 102:75]
    node _T_114 = or(_T_109, _T_113) @[Bitwise.scala 102:39]
    node _T_115 = bits(_T_107, 29, 0) @[Bitwise.scala 101:28]
    node _T_116 = shl(_T_115, 2) @[Bitwise.scala 101:47]
    node _T_117 = xor(_T_107, _T_116) @[Bitwise.scala 101:21]
    node _T_118 = shr(_T_114, 2) @[Bitwise.scala 102:21]
    node _T_119 = and(_T_118, _T_117) @[Bitwise.scala 102:31]
    node _T_120 = bits(_T_114, 29, 0) @[Bitwise.scala 102:46]
    node _T_121 = shl(_T_120, 2) @[Bitwise.scala 102:65]
    node _T_122 = not(_T_117) @[Bitwise.scala 102:77]
    node _T_123 = and(_T_121, _T_122) @[Bitwise.scala 102:75]
    node _T_124 = or(_T_119, _T_123) @[Bitwise.scala 102:39]
    node _T_125 = bits(_T_117, 30, 0) @[Bitwise.scala 101:28]
    node _T_126 = shl(_T_125, 1) @[Bitwise.scala 101:47]
    node _T_127 = xor(_T_117, _T_126) @[Bitwise.scala 101:21]
    node _T_128 = shr(_T_124, 1) @[Bitwise.scala 102:21]
    node _T_129 = and(_T_128, _T_127) @[Bitwise.scala 102:31]
    node _T_130 = bits(_T_124, 30, 0) @[Bitwise.scala 102:46]
    node _T_131 = shl(_T_130, 1) @[Bitwise.scala 102:65]
    node _T_132 = not(_T_127) @[Bitwise.scala 102:77]
    node _T_133 = and(_T_131, _T_132) @[Bitwise.scala 102:75]
    node shiftl = or(_T_129, _T_133) @[Bitwise.scala 102:39]
    node _T_134 = eq(io.alu_op, UInt<4>("h00")) @[ALU.scala 68:19]
    node _T_135 = eq(io.alu_op, UInt<4>("h01")) @[ALU.scala 68:44]
    node _T_136 = or(_T_134, _T_135) @[ALU.scala 68:31]
    node _T_137 = eq(io.alu_op, UInt<4>("h05")) @[ALU.scala 69:19]
    node _T_138 = eq(io.alu_op, UInt<4>("h07")) @[ALU.scala 69:44]
    node _T_139 = or(_T_137, _T_138) @[ALU.scala 69:31]
    node _T_140 = eq(io.alu_op, UInt<4>("h09")) @[ALU.scala 70:19]
    node _T_141 = eq(io.alu_op, UInt<4>("h08")) @[ALU.scala 70:44]
    node _T_142 = or(_T_140, _T_141) @[ALU.scala 70:31]
    node _T_143 = eq(io.alu_op, UInt<4>("h06")) @[ALU.scala 71:19]
    node _T_144 = eq(io.alu_op, UInt<4>("h02")) @[ALU.scala 72:19]
    node _T_145 = and(io.A, io.B) @[ALU.scala 72:38]
    node _T_146 = eq(io.alu_op, UInt<4>("h03")) @[ALU.scala 73:19]
    node _T_147 = or(io.A, io.B) @[ALU.scala 73:38]
    node _T_148 = eq(io.alu_op, UInt<4>("h04")) @[ALU.scala 74:19]
    node _T_149 = xor(io.A, io.B) @[ALU.scala 74:38]
    node _T_150 = eq(io.alu_op, UInt<4>("h0a")) @[ALU.scala 75:19]
    node _T_151 = mux(_T_150, io.A, io.B) @[ALU.scala 75:8]
    node _T_152 = mux(_T_148, _T_149, _T_151) @[ALU.scala 74:8]
    node _T_153 = mux(_T_146, _T_147, _T_152) @[ALU.scala 73:8]
    node _T_154 = mux(_T_144, _T_145, _T_153) @[ALU.scala 72:8]
    node _T_155 = mux(_T_143, shiftl, _T_154) @[ALU.scala 71:8]
    node _T_156 = mux(_T_142, shiftr, _T_155) @[ALU.scala 70:8]
    node _T_157 = shl(cmp, 0) @[ALU.scala 69:8]
    node _T_158 = mux(_T_139, _T_157, _T_156) @[ALU.scala 69:8]
    node out = mux(_T_136, sum, _T_158) @[ALU.scala 68:8]
    io.out <= out @[ALU.scala 78:10]
    io.sum <= sum @[ALU.scala 79:10]
    
  module ImmGenWire : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip inst : UInt<32>, flip sel : UInt<3>, out : UInt<32>}
    
    io is invalid
    io is invalid
    node _T_8 = bits(io.inst, 31, 20) @[ImmGen.scala 21:21]
    node Iimm = asSInt(_T_8) @[ImmGen.scala 21:30]
    node _T_9 = bits(io.inst, 31, 25) @[ImmGen.scala 22:25]
    node _T_10 = bits(io.inst, 11, 7) @[ImmGen.scala 22:42]
    node _T_11 = cat(_T_9, _T_10) @[Cat.scala 30:58]
    node Simm = asSInt(_T_11) @[ImmGen.scala 22:50]
    node _T_12 = bits(io.inst, 31, 31) @[ImmGen.scala 23:25]
    node _T_13 = bits(io.inst, 7, 7) @[ImmGen.scala 23:38]
    node _T_14 = bits(io.inst, 30, 25) @[ImmGen.scala 23:50]
    node _T_15 = bits(io.inst, 11, 8) @[ImmGen.scala 23:67]
    node _T_17 = cat(_T_15, UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_18 = cat(_T_12, _T_13) @[Cat.scala 30:58]
    node _T_19 = cat(_T_18, _T_14) @[Cat.scala 30:58]
    node _T_20 = cat(_T_19, _T_17) @[Cat.scala 30:58]
    node Bimm = asSInt(_T_20) @[ImmGen.scala 23:86]
    node _T_21 = bits(io.inst, 31, 12) @[ImmGen.scala 24:25]
    node _T_23 = cat(_T_21, UInt<12>("h00")) @[Cat.scala 30:58]
    node Uimm = asSInt(_T_23) @[ImmGen.scala 24:46]
    node _T_24 = bits(io.inst, 31, 31) @[ImmGen.scala 25:25]
    node _T_25 = bits(io.inst, 19, 12) @[ImmGen.scala 25:38]
    node _T_26 = bits(io.inst, 20, 20) @[ImmGen.scala 25:55]
    node _T_27 = bits(io.inst, 30, 25) @[ImmGen.scala 25:68]
    node _T_28 = bits(io.inst, 24, 21) @[ImmGen.scala 25:85]
    node _T_30 = cat(_T_27, _T_28) @[Cat.scala 30:58]
    node _T_31 = cat(_T_30, UInt<1>("h00")) @[Cat.scala 30:58]
    node _T_32 = cat(_T_24, _T_25) @[Cat.scala 30:58]
    node _T_33 = cat(_T_32, _T_26) @[Cat.scala 30:58]
    node _T_34 = cat(_T_33, _T_31) @[Cat.scala 30:58]
    node Jimm = asSInt(_T_34) @[ImmGen.scala 25:105]
    node _T_35 = bits(io.inst, 19, 15) @[ImmGen.scala 26:21]
    node Zimm = cvt(_T_35) @[ImmGen.scala 26:30]
    node _T_37 = and(Iimm, asSInt(UInt<2>("h02"))) @[ImmGen.scala 28:36]
    node _T_38 = asSInt(_T_37) @[ImmGen.scala 28:36]
    node _T_39 = eq(UInt<3>("h06"), io.sel) @[Mux.scala 46:19]
    node _T_40 = mux(_T_39, Zimm, _T_38) @[Mux.scala 46:16]
    node _T_41 = eq(UInt<3>("h04"), io.sel) @[Mux.scala 46:19]
    node _T_42 = mux(_T_41, Jimm, _T_40) @[Mux.scala 46:16]
    node _T_43 = eq(UInt<3>("h03"), io.sel) @[Mux.scala 46:19]
    node _T_44 = mux(_T_43, Uimm, _T_42) @[Mux.scala 46:16]
    node _T_45 = eq(UInt<3>("h05"), io.sel) @[Mux.scala 46:19]
    node _T_46 = mux(_T_45, Bimm, _T_44) @[Mux.scala 46:16]
    node _T_47 = eq(UInt<3>("h02"), io.sel) @[Mux.scala 46:19]
    node _T_48 = mux(_T_47, Simm, _T_46) @[Mux.scala 46:16]
    node _T_49 = eq(UInt<3>("h01"), io.sel) @[Mux.scala 46:19]
    node _T_50 = mux(_T_49, Iimm, _T_48) @[Mux.scala 46:16]
    node _T_51 = asUInt(_T_50) @[ImmGen.scala 29:100]
    io.out <= _T_51 @[ImmGen.scala 28:10]
    
  module BrCondArea : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip rs1 : UInt<32>, flip rs2 : UInt<32>, flip br_type : UInt<3>, taken : UInt<1>}
    
    io is invalid
    io is invalid
    node _T_10 = sub(io.rs1, io.rs2) @[BrCond.scala 37:21]
    node diff = tail(_T_10, 1) @[BrCond.scala 37:21]
    node neq = neq(diff, UInt<1>("h00")) @[BrCond.scala 38:19]
    node eq = eq(neq, UInt<1>("h00")) @[BrCond.scala 39:14]
    node _T_13 = bits(io.rs1, 31, 31) @[BrCond.scala 40:26]
    node _T_14 = bits(io.rs2, 31, 31) @[BrCond.scala 40:45]
    node isSameSign = eq(_T_13, _T_14) @[BrCond.scala 40:35]
    node _T_15 = bits(diff, 31, 31) @[BrCond.scala 41:34]
    node _T_16 = bits(io.rs1, 31, 31) @[BrCond.scala 41:50]
    node lt = mux(isSameSign, _T_15, _T_16) @[BrCond.scala 41:17]
    node _T_17 = bits(diff, 31, 31) @[BrCond.scala 42:34]
    node _T_18 = bits(io.rs2, 31, 31) @[BrCond.scala 42:50]
    node ltu = mux(isSameSign, _T_17, _T_18) @[BrCond.scala 42:17]
    node ge = eq(lt, UInt<1>("h00")) @[BrCond.scala 43:14]
    node geu = eq(ltu, UInt<1>("h00")) @[BrCond.scala 44:14]
    node _T_21 = eq(io.br_type, UInt<3>("h03")) @[BrCond.scala 46:18]
    node _T_22 = and(_T_21, eq) @[BrCond.scala 46:29]
    node _T_23 = eq(io.br_type, UInt<3>("h06")) @[BrCond.scala 47:18]
    node _T_24 = and(_T_23, neq) @[BrCond.scala 47:29]
    node _T_25 = or(_T_22, _T_24) @[BrCond.scala 46:36]
    node _T_26 = eq(io.br_type, UInt<3>("h02")) @[BrCond.scala 48:18]
    node _T_27 = and(_T_26, lt) @[BrCond.scala 48:29]
    node _T_28 = or(_T_25, _T_27) @[BrCond.scala 47:37]
    node _T_29 = eq(io.br_type, UInt<3>("h05")) @[BrCond.scala 49:18]
    node _T_30 = and(_T_29, ge) @[BrCond.scala 49:29]
    node _T_31 = or(_T_28, _T_30) @[BrCond.scala 48:36]
    node _T_32 = eq(io.br_type, UInt<3>("h01")) @[BrCond.scala 50:18]
    node _T_33 = and(_T_32, ltu) @[BrCond.scala 50:30]
    node _T_34 = or(_T_31, _T_33) @[BrCond.scala 49:36]
    node _T_35 = eq(io.br_type, UInt<3>("h04")) @[BrCond.scala 51:18]
    node _T_36 = and(_T_35, geu) @[BrCond.scala 51:30]
    node _T_37 = or(_T_34, _T_36) @[BrCond.scala 50:38]
    io.taken <= _T_37 @[BrCond.scala 45:12]
    
  module Datapath : 
    input clock : Clock
    input reset : UInt<1>
    output io : {host : {flip fromhost : {valid : UInt<1>, bits : UInt<32>}, tohost : UInt<32>}, flip icache : {flip abort : UInt<1>, flip req : {valid : UInt<1>, bits : {addr : UInt<32>, data : UInt<32>, mask : UInt<4>}}, resp : {valid : UInt<1>, bits : {data : UInt<32>}}}, flip dcache : {flip abort : UInt<1>, flip req : {valid : UInt<1>, bits : {addr : UInt<32>, data : UInt<32>, mask : UInt<4>}}, resp : {valid : UInt<1>, bits : {data : UInt<32>}}}, flip ctrl : {flip inst : UInt<32>, pc_sel : UInt<2>, inst_kill : UInt<1>, A_sel : UInt<1>, B_sel : UInt<1>, imm_sel : UInt<3>, alu_op : UInt<4>, br_type : UInt<3>, st_type : UInt<2>, ld_type : UInt<3>, wb_sel : UInt<2>, wb_en : UInt<1>, csr_cmd : UInt<3>, illegal : UInt<1>}}
    
    io is invalid
    io is invalid
    inst csr of CSR @[Datapath.scala 23:23]
    csr.io is invalid
    csr.clock <= clock
    csr.reset <= reset
    inst regFile of RegFile @[Datapath.scala 24:23]
    regFile.io is invalid
    regFile.clock <= clock
    regFile.reset <= reset
    inst alu of ALUArea @[Config.scala 13:50]
    alu.io is invalid
    alu.clock <= clock
    alu.reset <= reset
    inst immGen of ImmGenWire @[Config.scala 14:50]
    immGen.io is invalid
    immGen.clock <= clock
    immGen.reset <= reset
    inst brCond of BrCondArea @[Config.scala 15:50]
    brCond.io is invalid
    brCond.clock <= clock
    brCond.reset <= reset
    reg fe_inst : UInt<32>, clock with : (reset => (reset, UInt<32>("h013"))) @[Reg.scala 26:44]
    reg fe_pc : UInt, clock @[Datapath.scala 33:20]
    reg ew_inst : UInt<32>, clock with : (reset => (reset, UInt<32>("h013"))) @[Reg.scala 26:44]
    reg ew_pc : UInt, clock @[Datapath.scala 37:20]
    reg ew_alu : UInt, clock @[Datapath.scala 38:20]
    reg csr_in : UInt, clock @[Datapath.scala 39:20]
    reg st_type : UInt<2>, clock @[Datapath.scala 42:21]
    reg ld_type : UInt<3>, clock @[Datapath.scala 43:21]
    reg wb_sel : UInt<2>, clock @[Datapath.scala 44:21]
    reg wb_en : UInt<1>, clock @[Datapath.scala 45:21]
    reg csr_cmd : UInt<3>, clock @[Datapath.scala 46:21]
    reg illegal : UInt<1>, clock @[Datapath.scala 47:21]
    reg pc_check : UInt<1>, clock @[Datapath.scala 48:21]
    reg started : UInt<1>, clock @[Reg.scala 14:44]
    started <= reset @[Reg.scala 14:44]
    node _T_240 = eq(io.icache.resp.valid, UInt<1>("h00")) @[Datapath.scala 52:15]
    node _T_242 = eq(io.dcache.resp.valid, UInt<1>("h00")) @[Datapath.scala 52:40]
    node stall = or(_T_240, _T_242) @[Datapath.scala 52:37]
    node _T_245 = sub(UInt<32>("h0200"), UInt<32>("h04")) @[Datapath.scala 53:47]
    node _T_246 = tail(_T_245, 1) @[Datapath.scala 53:47]
    reg pc : UInt, clock with : (reset => (reset, _T_246)) @[Reg.scala 26:44]
    node _T_247 = eq(io.ctrl.pc_sel, UInt<2>("h03")) @[Datapath.scala 55:33]
    node _T_248 = eq(io.ctrl.pc_sel, UInt<2>("h01")) @[Datapath.scala 56:33]
    node _T_249 = or(_T_248, brCond.io.taken) @[Datapath.scala 56:44]
    node _T_251 = dshr(alu.io.sum, UInt<1>("h01")) @[Datapath.scala 56:75]
    node _T_253 = dshl(_T_251, UInt<1>("h01")) @[Datapath.scala 56:82]
    node _T_254 = eq(io.ctrl.pc_sel, UInt<2>("h02")) @[Datapath.scala 57:33]
    node _T_256 = add(pc, UInt<3>("h04")) @[Datapath.scala 57:50]
    node _T_257 = tail(_T_256, 1) @[Datapath.scala 57:50]
    node _T_258 = mux(_T_254, pc, _T_257) @[Datapath.scala 57:17]
    node _T_259 = mux(_T_249, _T_253, _T_258) @[Datapath.scala 56:17]
    node _T_260 = mux(_T_247, csr.io.epc, _T_259) @[Datapath.scala 55:17]
    node _T_261 = mux(csr.io.expt, csr.io.evec, _T_260) @[Datapath.scala 54:32]
    node npc = mux(stall, pc, _T_261) @[Datapath.scala 54:17]
    node _T_262 = or(started, io.ctrl.inst_kill) @[Datapath.scala 58:26]
    node _T_263 = or(_T_262, brCond.io.taken) @[Datapath.scala 58:47]
    node _T_264 = or(_T_263, csr.io.expt) @[Datapath.scala 58:66]
    node inst = mux(_T_264, UInt<32>("h013"), io.icache.resp.bits.data) @[Datapath.scala 58:17]
    pc <= npc @[Datapath.scala 59:27]
    io.icache.req.bits.addr <= npc @[Datapath.scala 60:27]
    io.icache.req.bits.data <= UInt<1>("h00") @[Datapath.scala 61:27]
    io.icache.req.bits.mask <= UInt<1>("h00") @[Datapath.scala 62:27]
    node _T_269 = eq(stall, UInt<1>("h00")) @[Datapath.scala 63:30]
    io.icache.req.valid <= _T_269 @[Datapath.scala 63:27]
    io.icache.abort <= UInt<1>("h00") @[Datapath.scala 64:27]
    node _T_272 = eq(stall, UInt<1>("h00")) @[Datapath.scala 67:9]
    when _T_272 : @[Datapath.scala 67:17]
      fe_pc <= pc @[Datapath.scala 68:13]
      fe_inst <= inst @[Datapath.scala 69:13]
      skip @[Datapath.scala 67:17]
    io.ctrl.inst <= fe_inst @[Datapath.scala 74:17]
    node rd_addr = bits(fe_inst, 11, 7) @[Datapath.scala 77:25]
    node rs1_addr = bits(fe_inst, 19, 15) @[Datapath.scala 78:25]
    node rs2_addr = bits(fe_inst, 24, 20) @[Datapath.scala 79:25]
    regFile.io.raddr1 <= rs1_addr @[Datapath.scala 80:21]
    regFile.io.raddr2 <= rs2_addr @[Datapath.scala 81:21]
    immGen.io.inst <= fe_inst @[Datapath.scala 84:18]
    immGen.io.sel <= io.ctrl.imm_sel @[Datapath.scala 85:18]
    node wb_rd_addr = bits(ew_inst, 11, 7) @[Datapath.scala 88:27]
    node _T_274 = neq(rs1_addr, UInt<1>("h00")) @[Datapath.scala 89:37]
    node _T_275 = and(wb_en, _T_274) @[Datapath.scala 89:25]
    node _T_276 = eq(rs1_addr, wb_rd_addr) @[Datapath.scala 89:54]
    node rs1hazard = and(_T_275, _T_276) @[Datapath.scala 89:41]
    node _T_278 = neq(rs2_addr, UInt<1>("h00")) @[Datapath.scala 90:37]
    node _T_279 = and(wb_en, _T_278) @[Datapath.scala 90:25]
    node _T_280 = eq(rs2_addr, wb_rd_addr) @[Datapath.scala 90:54]
    node rs2hazard = and(_T_279, _T_280) @[Datapath.scala 90:41]
    node _T_281 = eq(wb_sel, UInt<2>("h00")) @[Datapath.scala 91:24]
    node _T_282 = and(_T_281, rs1hazard) @[Datapath.scala 91:35]
    node rs1 = mux(_T_282, ew_alu, regFile.io.rdata1) @[Datapath.scala 91:16]
    node _T_283 = eq(wb_sel, UInt<2>("h00")) @[Datapath.scala 92:24]
    node _T_284 = and(_T_283, rs2hazard) @[Datapath.scala 92:35]
    node rs2 = mux(_T_284, ew_alu, regFile.io.rdata2) @[Datapath.scala 92:16]
    node _T_285 = eq(io.ctrl.A_sel, UInt<1>("h01")) @[Datapath.scala 95:33]
    node _T_286 = mux(_T_285, rs1, fe_pc) @[Datapath.scala 95:18]
    alu.io.A <= _T_286 @[Datapath.scala 95:12]
    node _T_287 = eq(io.ctrl.B_sel, UInt<1>("h01")) @[Datapath.scala 96:33]
    node _T_288 = mux(_T_287, rs2, immGen.io.out) @[Datapath.scala 96:18]
    alu.io.B <= _T_288 @[Datapath.scala 96:12]
    alu.io.alu_op <= io.ctrl.alu_op @[Datapath.scala 97:17]
    brCond.io.rs1 <= rs1 @[Datapath.scala 100:17]
    brCond.io.rs2 <= rs2 @[Datapath.scala 101:17]
    brCond.io.br_type <= io.ctrl.br_type @[Datapath.scala 102:21]
    node _T_289 = mux(stall, ew_alu, alu.io.sum) @[Datapath.scala 105:20]
    node _T_291 = dshr(_T_289, UInt<2>("h02")) @[Datapath.scala 105:48]
    node daddr = dshl(_T_291, UInt<2>("h02")) @[Datapath.scala 105:55]
    node _T_293 = bits(alu.io.sum, 1, 1) @[Datapath.scala 106:27]
    node _T_295 = dshl(_T_293, UInt<3>("h04")) @[Datapath.scala 106:31]
    node _T_296 = bits(alu.io.sum, 0, 0) @[Datapath.scala 106:50]
    node _T_298 = dshl(_T_296, UInt<2>("h03")) @[Datapath.scala 106:54]
    node woffset = or(_T_295, _T_298) @[Datapath.scala 106:38]
    node _T_300 = eq(stall, UInt<1>("h00")) @[Datapath.scala 107:30]
    node _T_302 = neq(io.ctrl.st_type, UInt<1>("h00")) @[Datapath.scala 107:57]
    node _T_304 = neq(io.ctrl.ld_type, UInt<1>("h00")) @[Datapath.scala 107:80]
    node _T_305 = or(_T_302, _T_304) @[Datapath.scala 107:61]
    node _T_306 = and(_T_300, _T_305) @[Datapath.scala 107:37]
    io.dcache.req.valid <= _T_306 @[Datapath.scala 107:27]
    io.dcache.req.bits.addr <= daddr @[Datapath.scala 108:27]
    node _T_307 = dshl(rs2, woffset) @[Datapath.scala 109:34]
    io.dcache.req.bits.data <= _T_307 @[Datapath.scala 109:27]
    node _T_308 = mux(stall, st_type, io.ctrl.st_type) @[Datapath.scala 110:43]
    node _T_312 = bits(alu.io.sum, 1, 0) @[Datapath.scala 113:40]
    node _T_313 = dshl(UInt<2>("h03"), _T_312) @[Datapath.scala 113:27]
    node _T_315 = bits(alu.io.sum, 1, 0) @[Datapath.scala 114:40]
    node _T_316 = dshl(UInt<1>("h01"), _T_315) @[Datapath.scala 114:27]
    node _T_317 = eq(UInt<2>("h03"), _T_308) @[Mux.scala 46:19]
    node _T_318 = mux(_T_317, _T_316, UInt<1>("h00")) @[Mux.scala 46:16]
    node _T_319 = eq(UInt<2>("h02"), _T_308) @[Mux.scala 46:19]
    node _T_320 = mux(_T_319, _T_313, _T_318) @[Mux.scala 46:16]
    node _T_321 = eq(UInt<2>("h01"), _T_308) @[Mux.scala 46:19]
    node _T_322 = mux(_T_321, UInt<4>("h0f"), _T_320) @[Mux.scala 46:16]
    io.dcache.req.bits.mask <= _T_322 @[Datapath.scala 110:27]
    node _T_324 = eq(stall, UInt<1>("h00")) @[Datapath.scala 117:17]
    node _T_325 = and(_T_324, csr.io.expt) @[Datapath.scala 117:24]
    node _T_326 = or(reset, _T_325) @[Datapath.scala 117:14]
    when _T_326 : @[Datapath.scala 117:40]
      st_type <= UInt<1>("h00") @[Datapath.scala 118:15]
      ld_type <= UInt<1>("h00") @[Datapath.scala 119:15]
      wb_en <= UInt<1>("h00") @[Datapath.scala 120:15]
      csr_cmd <= UInt<1>("h00") @[Datapath.scala 121:15]
      illegal <= UInt<1>("h00") @[Datapath.scala 122:15]
      pc_check <= UInt<1>("h00") @[Datapath.scala 123:15]
      skip @[Datapath.scala 117:40]
    node _T_334 = eq(stall, UInt<1>("h00")) @[Datapath.scala 124:14]
    node _T_336 = eq(csr.io.expt, UInt<1>("h00")) @[Datapath.scala 124:24]
    node _T_337 = and(_T_334, _T_336) @[Datapath.scala 124:21]
    node _T_339 = eq(_T_326, UInt<1>("h00")) @[Datapath.scala 117:40]
    node _T_340 = and(_T_339, _T_337) @[Datapath.scala 124:38]
    when _T_340 : @[Datapath.scala 124:38]
      ew_pc <= fe_pc @[Datapath.scala 125:15]
      ew_inst <= fe_inst @[Datapath.scala 126:15]
      ew_alu <= alu.io.out @[Datapath.scala 127:15]
      node _T_341 = eq(io.ctrl.imm_sel, UInt<3>("h06")) @[Datapath.scala 128:38]
      node _T_342 = mux(_T_341, immGen.io.out, rs1) @[Datapath.scala 128:21]
      csr_in <= _T_342 @[Datapath.scala 128:15]
      st_type <= io.ctrl.st_type @[Datapath.scala 129:15]
      ld_type <= io.ctrl.ld_type @[Datapath.scala 130:15]
      wb_sel <= io.ctrl.wb_sel @[Datapath.scala 131:15]
      wb_en <= io.ctrl.wb_en @[Datapath.scala 132:15]
      csr_cmd <= io.ctrl.csr_cmd @[Datapath.scala 133:15]
      illegal <= io.ctrl.illegal @[Datapath.scala 134:15]
      node _T_343 = eq(io.ctrl.pc_sel, UInt<2>("h01")) @[Datapath.scala 135:33]
      pc_check <= _T_343 @[Datapath.scala 135:15]
      skip @[Datapath.scala 124:38]
    node _T_344 = bits(ew_alu, 1, 1) @[Datapath.scala 139:23]
    node _T_346 = dshl(_T_344, UInt<3>("h04")) @[Datapath.scala 139:27]
    node _T_347 = bits(ew_alu, 0, 0) @[Datapath.scala 139:42]
    node _T_349 = dshl(_T_347, UInt<2>("h03")) @[Datapath.scala 139:46]
    node loffset = or(_T_346, _T_349) @[Datapath.scala 139:34]
    node lshift = dshr(io.dcache.resp.bits.data, loffset) @[Datapath.scala 140:42]
    node _T_350 = cvt(io.dcache.resp.bits.data) @[Datapath.scala 141:61]
    node _T_351 = bits(lshift, 15, 0) @[Datapath.scala 142:21]
    node _T_352 = asSInt(_T_351) @[Datapath.scala 142:29]
    node _T_353 = bits(lshift, 7, 0) @[Datapath.scala 142:53]
    node _T_354 = asSInt(_T_353) @[Datapath.scala 142:60]
    node _T_355 = bits(lshift, 15, 0) @[Datapath.scala 143:21]
    node _T_356 = cvt(_T_355) @[Datapath.scala 143:29]
    node _T_357 = bits(lshift, 7, 0) @[Datapath.scala 143:53]
    node _T_358 = cvt(_T_357) @[Datapath.scala 143:60]
    node _T_359 = eq(UInt<3>("h05"), ld_type) @[Mux.scala 46:19]
    node _T_360 = mux(_T_359, _T_358, _T_350) @[Mux.scala 46:16]
    node _T_361 = eq(UInt<3>("h04"), ld_type) @[Mux.scala 46:19]
    node _T_362 = mux(_T_361, _T_356, _T_360) @[Mux.scala 46:16]
    node _T_363 = eq(UInt<3>("h03"), ld_type) @[Mux.scala 46:19]
    node _T_364 = mux(_T_363, _T_354, _T_362) @[Mux.scala 46:16]
    node _T_365 = eq(UInt<3>("h02"), ld_type) @[Mux.scala 46:19]
    node load = mux(_T_365, _T_352, _T_364) @[Mux.scala 46:16]
    csr.io.stall <= stall @[Datapath.scala 146:19]
    csr.io.in <= csr_in @[Datapath.scala 147:19]
    csr.io.cmd <= csr_cmd @[Datapath.scala 148:19]
    csr.io.inst <= ew_inst @[Datapath.scala 149:19]
    csr.io.pc <= ew_pc @[Datapath.scala 150:19]
    csr.io.addr <= ew_alu @[Datapath.scala 151:19]
    csr.io.illegal <= illegal @[Datapath.scala 152:19]
    csr.io.pc_check <= pc_check @[Datapath.scala 153:19]
    csr.io.ld_type <= ld_type @[Datapath.scala 154:19]
    csr.io.st_type <= st_type @[Datapath.scala 155:19]
    io.host.tohost <= csr.io.host.tohost @[Datapath.scala 156:11]
    csr.io.host.fromhost.bits <= io.host.fromhost.bits @[Datapath.scala 156:11]
    csr.io.host.fromhost.valid <= io.host.fromhost.valid @[Datapath.scala 156:11]
    node _T_366 = cvt(ew_alu) @[Datapath.scala 159:43]
    node _T_368 = add(ew_pc, UInt<3>("h04")) @[Datapath.scala 161:22]
    node _T_369 = tail(_T_368, 1) @[Datapath.scala 161:22]
    node _T_370 = cvt(_T_369) @[Datapath.scala 161:29]
    node _T_371 = cvt(csr.io.out) @[Datapath.scala 162:26]
    node _T_372 = eq(UInt<2>("h03"), wb_sel) @[Mux.scala 46:19]
    node _T_373 = mux(_T_372, _T_371, _T_366) @[Mux.scala 46:16]
    node _T_374 = eq(UInt<2>("h02"), wb_sel) @[Mux.scala 46:19]
    node _T_375 = mux(_T_374, _T_370, _T_373) @[Mux.scala 46:16]
    node _T_376 = eq(UInt<2>("h01"), wb_sel) @[Mux.scala 46:19]
    node _T_377 = mux(_T_376, load, _T_375) @[Mux.scala 46:16]
    node regWrite = asUInt(_T_377) @[Datapath.scala 162:34]
    node _T_379 = eq(stall, UInt<1>("h00")) @[Datapath.scala 164:32]
    node _T_380 = and(wb_en, _T_379) @[Datapath.scala 164:29]
    node _T_382 = eq(csr.io.expt, UInt<1>("h00")) @[Datapath.scala 164:42]
    node _T_383 = and(_T_380, _T_382) @[Datapath.scala 164:39]
    regFile.io.wen <= _T_383 @[Datapath.scala 164:20]
    regFile.io.waddr <= wb_rd_addr @[Datapath.scala 165:20]
    regFile.io.wdata <= regWrite @[Datapath.scala 166:20]
    io.dcache.abort <= csr.io.expt @[Datapath.scala 169:19]
    
  module Control : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip inst : UInt<32>, pc_sel : UInt<2>, inst_kill : UInt<1>, A_sel : UInt<1>, B_sel : UInt<1>, imm_sel : UInt<3>, alu_op : UInt<4>, br_type : UInt<3>, st_type : UInt<2>, ld_type : UInt<3>, wb_sel : UInt<2>, wb_en : UInt<1>, csr_cmd : UInt<3>, illegal : UInt<1>}
    
    io is invalid
    io is invalid
    node _T_32 = and(io.inst, UInt<7>("h07f")) @[Lookup.scala 9:38]
    node _T_33 = eq(UInt<6>("h037"), _T_32) @[Lookup.scala 9:38]
    node _T_36 = and(io.inst, UInt<7>("h07f")) @[Lookup.scala 9:38]
    node _T_37 = eq(UInt<5>("h017"), _T_36) @[Lookup.scala 9:38]
    node _T_40 = and(io.inst, UInt<7>("h07f")) @[Lookup.scala 9:38]
    node _T_41 = eq(UInt<7>("h06f"), _T_40) @[Lookup.scala 9:38]
    node _T_44 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_45 = eq(UInt<7>("h067"), _T_44) @[Lookup.scala 9:38]
    node _T_48 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_49 = eq(UInt<7>("h063"), _T_48) @[Lookup.scala 9:38]
    node _T_52 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_53 = eq(UInt<13>("h01063"), _T_52) @[Lookup.scala 9:38]
    node _T_56 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_57 = eq(UInt<15>("h04063"), _T_56) @[Lookup.scala 9:38]
    node _T_60 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_61 = eq(UInt<15>("h05063"), _T_60) @[Lookup.scala 9:38]
    node _T_64 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_65 = eq(UInt<15>("h06063"), _T_64) @[Lookup.scala 9:38]
    node _T_68 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_69 = eq(UInt<15>("h07063"), _T_68) @[Lookup.scala 9:38]
    node _T_72 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_73 = eq(UInt<2>("h03"), _T_72) @[Lookup.scala 9:38]
    node _T_76 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_77 = eq(UInt<13>("h01003"), _T_76) @[Lookup.scala 9:38]
    node _T_80 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_81 = eq(UInt<14>("h02003"), _T_80) @[Lookup.scala 9:38]
    node _T_84 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_85 = eq(UInt<15>("h04003"), _T_84) @[Lookup.scala 9:38]
    node _T_88 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_89 = eq(UInt<15>("h05003"), _T_88) @[Lookup.scala 9:38]
    node _T_92 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_93 = eq(UInt<6>("h023"), _T_92) @[Lookup.scala 9:38]
    node _T_96 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_97 = eq(UInt<13>("h01023"), _T_96) @[Lookup.scala 9:38]
    node _T_100 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_101 = eq(UInt<14>("h02023"), _T_100) @[Lookup.scala 9:38]
    node _T_104 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_105 = eq(UInt<5>("h013"), _T_104) @[Lookup.scala 9:38]
    node _T_108 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_109 = eq(UInt<14>("h02013"), _T_108) @[Lookup.scala 9:38]
    node _T_112 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_113 = eq(UInt<14>("h03013"), _T_112) @[Lookup.scala 9:38]
    node _T_116 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_117 = eq(UInt<15>("h04013"), _T_116) @[Lookup.scala 9:38]
    node _T_120 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_121 = eq(UInt<15>("h06013"), _T_120) @[Lookup.scala 9:38]
    node _T_124 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_125 = eq(UInt<15>("h07013"), _T_124) @[Lookup.scala 9:38]
    node _T_128 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_129 = eq(UInt<13>("h01013"), _T_128) @[Lookup.scala 9:38]
    node _T_132 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_133 = eq(UInt<15>("h05013"), _T_132) @[Lookup.scala 9:38]
    node _T_136 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_137 = eq(UInt<31>("h040005013"), _T_136) @[Lookup.scala 9:38]
    node _T_140 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_141 = eq(UInt<6>("h033"), _T_140) @[Lookup.scala 9:38]
    node _T_144 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_145 = eq(UInt<31>("h040000033"), _T_144) @[Lookup.scala 9:38]
    node _T_148 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_149 = eq(UInt<13>("h01033"), _T_148) @[Lookup.scala 9:38]
    node _T_152 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_153 = eq(UInt<14>("h02033"), _T_152) @[Lookup.scala 9:38]
    node _T_156 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_157 = eq(UInt<14>("h03033"), _T_156) @[Lookup.scala 9:38]
    node _T_160 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_161 = eq(UInt<15>("h04033"), _T_160) @[Lookup.scala 9:38]
    node _T_164 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_165 = eq(UInt<15>("h05033"), _T_164) @[Lookup.scala 9:38]
    node _T_168 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_169 = eq(UInt<31>("h040005033"), _T_168) @[Lookup.scala 9:38]
    node _T_172 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_173 = eq(UInt<15>("h06033"), _T_172) @[Lookup.scala 9:38]
    node _T_176 = and(io.inst, UInt<32>("h0fe00707f")) @[Lookup.scala 9:38]
    node _T_177 = eq(UInt<15>("h07033"), _T_176) @[Lookup.scala 9:38]
    node _T_180 = and(io.inst, UInt<32>("h0f00fffff")) @[Lookup.scala 9:38]
    node _T_181 = eq(UInt<4>("h0f"), _T_180) @[Lookup.scala 9:38]
    node _T_184 = and(io.inst, UInt<32>("h0ffffffff")) @[Lookup.scala 9:38]
    node _T_185 = eq(UInt<13>("h0100f"), _T_184) @[Lookup.scala 9:38]
    node _T_188 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_189 = eq(UInt<13>("h01073"), _T_188) @[Lookup.scala 9:38]
    node _T_192 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_193 = eq(UInt<14>("h02073"), _T_192) @[Lookup.scala 9:38]
    node _T_196 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_197 = eq(UInt<14>("h03073"), _T_196) @[Lookup.scala 9:38]
    node _T_200 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_201 = eq(UInt<15>("h05073"), _T_200) @[Lookup.scala 9:38]
    node _T_204 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_205 = eq(UInt<15>("h06073"), _T_204) @[Lookup.scala 9:38]
    node _T_208 = and(io.inst, UInt<15>("h0707f")) @[Lookup.scala 9:38]
    node _T_209 = eq(UInt<15>("h07073"), _T_208) @[Lookup.scala 9:38]
    node _T_212 = and(io.inst, UInt<32>("h0ffffffff")) @[Lookup.scala 9:38]
    node _T_213 = eq(UInt<7>("h073"), _T_212) @[Lookup.scala 9:38]
    node _T_216 = and(io.inst, UInt<32>("h0ffffffff")) @[Lookup.scala 9:38]
    node _T_217 = eq(UInt<21>("h0100073"), _T_216) @[Lookup.scala 9:38]
    node _T_220 = and(io.inst, UInt<32>("h0ffffffff")) @[Lookup.scala 9:38]
    node _T_221 = eq(UInt<29>("h010000073"), _T_220) @[Lookup.scala 9:38]
    node _T_224 = and(io.inst, UInt<32>("h0ffffffff")) @[Lookup.scala 9:38]
    node _T_225 = eq(UInt<29>("h010200073"), _T_224) @[Lookup.scala 9:38]
    node _T_226 = mux(_T_225, UInt<2>("h00"), UInt<2>("h00")) @[Lookup.scala 11:37]
    node _T_227 = mux(_T_221, UInt<2>("h03"), _T_226) @[Lookup.scala 11:37]
    node _T_228 = mux(_T_217, UInt<2>("h00"), _T_227) @[Lookup.scala 11:37]
    node _T_229 = mux(_T_213, UInt<2>("h00"), _T_228) @[Lookup.scala 11:37]
    node _T_230 = mux(_T_209, UInt<2>("h02"), _T_229) @[Lookup.scala 11:37]
    node _T_231 = mux(_T_205, UInt<2>("h02"), _T_230) @[Lookup.scala 11:37]
    node _T_232 = mux(_T_201, UInt<2>("h02"), _T_231) @[Lookup.scala 11:37]
    node _T_233 = mux(_T_197, UInt<2>("h02"), _T_232) @[Lookup.scala 11:37]
    node _T_234 = mux(_T_193, UInt<2>("h02"), _T_233) @[Lookup.scala 11:37]
    node _T_235 = mux(_T_189, UInt<2>("h02"), _T_234) @[Lookup.scala 11:37]
    node _T_236 = mux(_T_185, UInt<2>("h02"), _T_235) @[Lookup.scala 11:37]
    node _T_237 = mux(_T_181, UInt<2>("h00"), _T_236) @[Lookup.scala 11:37]
    node _T_238 = mux(_T_177, UInt<2>("h00"), _T_237) @[Lookup.scala 11:37]
    node _T_239 = mux(_T_173, UInt<2>("h00"), _T_238) @[Lookup.scala 11:37]
    node _T_240 = mux(_T_169, UInt<2>("h00"), _T_239) @[Lookup.scala 11:37]
    node _T_241 = mux(_T_165, UInt<2>("h00"), _T_240) @[Lookup.scala 11:37]
    node _T_242 = mux(_T_161, UInt<2>("h00"), _T_241) @[Lookup.scala 11:37]
    node _T_243 = mux(_T_157, UInt<2>("h00"), _T_242) @[Lookup.scala 11:37]
    node _T_244 = mux(_T_153, UInt<2>("h00"), _T_243) @[Lookup.scala 11:37]
    node _T_245 = mux(_T_149, UInt<2>("h00"), _T_244) @[Lookup.scala 11:37]
    node _T_246 = mux(_T_145, UInt<2>("h00"), _T_245) @[Lookup.scala 11:37]
    node _T_247 = mux(_T_141, UInt<2>("h00"), _T_246) @[Lookup.scala 11:37]
    node _T_248 = mux(_T_137, UInt<2>("h00"), _T_247) @[Lookup.scala 11:37]
    node _T_249 = mux(_T_133, UInt<2>("h00"), _T_248) @[Lookup.scala 11:37]
    node _T_250 = mux(_T_129, UInt<2>("h00"), _T_249) @[Lookup.scala 11:37]
    node _T_251 = mux(_T_125, UInt<2>("h00"), _T_250) @[Lookup.scala 11:37]
    node _T_252 = mux(_T_121, UInt<2>("h00"), _T_251) @[Lookup.scala 11:37]
    node _T_253 = mux(_T_117, UInt<2>("h00"), _T_252) @[Lookup.scala 11:37]
    node _T_254 = mux(_T_113, UInt<2>("h00"), _T_253) @[Lookup.scala 11:37]
    node _T_255 = mux(_T_109, UInt<2>("h00"), _T_254) @[Lookup.scala 11:37]
    node _T_256 = mux(_T_105, UInt<2>("h00"), _T_255) @[Lookup.scala 11:37]
    node _T_257 = mux(_T_101, UInt<2>("h00"), _T_256) @[Lookup.scala 11:37]
    node _T_258 = mux(_T_97, UInt<2>("h00"), _T_257) @[Lookup.scala 11:37]
    node _T_259 = mux(_T_93, UInt<2>("h00"), _T_258) @[Lookup.scala 11:37]
    node _T_260 = mux(_T_89, UInt<2>("h02"), _T_259) @[Lookup.scala 11:37]
    node _T_261 = mux(_T_85, UInt<2>("h02"), _T_260) @[Lookup.scala 11:37]
    node _T_262 = mux(_T_81, UInt<2>("h02"), _T_261) @[Lookup.scala 11:37]
    node _T_263 = mux(_T_77, UInt<2>("h02"), _T_262) @[Lookup.scala 11:37]
    node _T_264 = mux(_T_73, UInt<2>("h02"), _T_263) @[Lookup.scala 11:37]
    node _T_265 = mux(_T_69, UInt<2>("h00"), _T_264) @[Lookup.scala 11:37]
    node _T_266 = mux(_T_65, UInt<2>("h00"), _T_265) @[Lookup.scala 11:37]
    node _T_267 = mux(_T_61, UInt<2>("h00"), _T_266) @[Lookup.scala 11:37]
    node _T_268 = mux(_T_57, UInt<2>("h00"), _T_267) @[Lookup.scala 11:37]
    node _T_269 = mux(_T_53, UInt<2>("h00"), _T_268) @[Lookup.scala 11:37]
    node _T_270 = mux(_T_49, UInt<2>("h00"), _T_269) @[Lookup.scala 11:37]
    node _T_271 = mux(_T_45, UInt<2>("h01"), _T_270) @[Lookup.scala 11:37]
    node _T_272 = mux(_T_41, UInt<2>("h01"), _T_271) @[Lookup.scala 11:37]
    node _T_273 = mux(_T_37, UInt<2>("h00"), _T_272) @[Lookup.scala 11:37]
    node ctrlSignals_0 = mux(_T_33, UInt<2>("h00"), _T_273) @[Lookup.scala 11:37]
    node _T_274 = mux(_T_225, UInt<1>("h00"), UInt<1>("h00")) @[Lookup.scala 11:37]
    node _T_275 = mux(_T_221, UInt<1>("h00"), _T_274) @[Lookup.scala 11:37]
    node _T_276 = mux(_T_217, UInt<1>("h00"), _T_275) @[Lookup.scala 11:37]
    node _T_277 = mux(_T_213, UInt<1>("h00"), _T_276) @[Lookup.scala 11:37]
    node _T_278 = mux(_T_209, UInt<1>("h00"), _T_277) @[Lookup.scala 11:37]
    node _T_279 = mux(_T_205, UInt<1>("h00"), _T_278) @[Lookup.scala 11:37]
    node _T_280 = mux(_T_201, UInt<1>("h00"), _T_279) @[Lookup.scala 11:37]
    node _T_281 = mux(_T_197, UInt<1>("h01"), _T_280) @[Lookup.scala 11:37]
    node _T_282 = mux(_T_193, UInt<1>("h01"), _T_281) @[Lookup.scala 11:37]
    node _T_283 = mux(_T_189, UInt<1>("h01"), _T_282) @[Lookup.scala 11:37]
    node _T_284 = mux(_T_185, UInt<1>("h00"), _T_283) @[Lookup.scala 11:37]
    node _T_285 = mux(_T_181, UInt<1>("h00"), _T_284) @[Lookup.scala 11:37]
    node _T_286 = mux(_T_177, UInt<1>("h01"), _T_285) @[Lookup.scala 11:37]
    node _T_287 = mux(_T_173, UInt<1>("h01"), _T_286) @[Lookup.scala 11:37]
    node _T_288 = mux(_T_169, UInt<1>("h01"), _T_287) @[Lookup.scala 11:37]
    node _T_289 = mux(_T_165, UInt<1>("h01"), _T_288) @[Lookup.scala 11:37]
    node _T_290 = mux(_T_161, UInt<1>("h01"), _T_289) @[Lookup.scala 11:37]
    node _T_291 = mux(_T_157, UInt<1>("h01"), _T_290) @[Lookup.scala 11:37]
    node _T_292 = mux(_T_153, UInt<1>("h01"), _T_291) @[Lookup.scala 11:37]
    node _T_293 = mux(_T_149, UInt<1>("h01"), _T_292) @[Lookup.scala 11:37]
    node _T_294 = mux(_T_145, UInt<1>("h01"), _T_293) @[Lookup.scala 11:37]
    node _T_295 = mux(_T_141, UInt<1>("h01"), _T_294) @[Lookup.scala 11:37]
    node _T_296 = mux(_T_137, UInt<1>("h01"), _T_295) @[Lookup.scala 11:37]
    node _T_297 = mux(_T_133, UInt<1>("h01"), _T_296) @[Lookup.scala 11:37]
    node _T_298 = mux(_T_129, UInt<1>("h01"), _T_297) @[Lookup.scala 11:37]
    node _T_299 = mux(_T_125, UInt<1>("h01"), _T_298) @[Lookup.scala 11:37]
    node _T_300 = mux(_T_121, UInt<1>("h01"), _T_299) @[Lookup.scala 11:37]
    node _T_301 = mux(_T_117, UInt<1>("h01"), _T_300) @[Lookup.scala 11:37]
    node _T_302 = mux(_T_113, UInt<1>("h01"), _T_301) @[Lookup.scala 11:37]
    node _T_303 = mux(_T_109, UInt<1>("h01"), _T_302) @[Lookup.scala 11:37]
    node _T_304 = mux(_T_105, UInt<1>("h01"), _T_303) @[Lookup.scala 11:37]
    node _T_305 = mux(_T_101, UInt<1>("h01"), _T_304) @[Lookup.scala 11:37]
    node _T_306 = mux(_T_97, UInt<1>("h01"), _T_305) @[Lookup.scala 11:37]
    node _T_307 = mux(_T_93, UInt<1>("h01"), _T_306) @[Lookup.scala 11:37]
    node _T_308 = mux(_T_89, UInt<1>("h01"), _T_307) @[Lookup.scala 11:37]
    node _T_309 = mux(_T_85, UInt<1>("h01"), _T_308) @[Lookup.scala 11:37]
    node _T_310 = mux(_T_81, UInt<1>("h01"), _T_309) @[Lookup.scala 11:37]
    node _T_311 = mux(_T_77, UInt<1>("h01"), _T_310) @[Lookup.scala 11:37]
    node _T_312 = mux(_T_73, UInt<1>("h01"), _T_311) @[Lookup.scala 11:37]
    node _T_313 = mux(_T_69, UInt<1>("h00"), _T_312) @[Lookup.scala 11:37]
    node _T_314 = mux(_T_65, UInt<1>("h00"), _T_313) @[Lookup.scala 11:37]
    node _T_315 = mux(_T_61, UInt<1>("h00"), _T_314) @[Lookup.scala 11:37]
    node _T_316 = mux(_T_57, UInt<1>("h00"), _T_315) @[Lookup.scala 11:37]
    node _T_317 = mux(_T_53, UInt<1>("h00"), _T_316) @[Lookup.scala 11:37]
    node _T_318 = mux(_T_49, UInt<1>("h00"), _T_317) @[Lookup.scala 11:37]
    node _T_319 = mux(_T_45, UInt<1>("h01"), _T_318) @[Lookup.scala 11:37]
    node _T_320 = mux(_T_41, UInt<1>("h00"), _T_319) @[Lookup.scala 11:37]
    node _T_321 = mux(_T_37, UInt<1>("h00"), _T_320) @[Lookup.scala 11:37]
    node ctrlSignals_1 = mux(_T_33, UInt<1>("h00"), _T_321) @[Lookup.scala 11:37]
    node _T_322 = mux(_T_225, UInt<1>("h00"), UInt<1>("h00")) @[Lookup.scala 11:37]
    node _T_323 = mux(_T_221, UInt<1>("h00"), _T_322) @[Lookup.scala 11:37]
    node _T_324 = mux(_T_217, UInt<1>("h00"), _T_323) @[Lookup.scala 11:37]
    node _T_325 = mux(_T_213, UInt<1>("h00"), _T_324) @[Lookup.scala 11:37]
    node _T_326 = mux(_T_209, UInt<1>("h00"), _T_325) @[Lookup.scala 11:37]
    node _T_327 = mux(_T_205, UInt<1>("h00"), _T_326) @[Lookup.scala 11:37]
    node _T_328 = mux(_T_201, UInt<1>("h00"), _T_327) @[Lookup.scala 11:37]
    node _T_329 = mux(_T_197, UInt<1>("h00"), _T_328) @[Lookup.scala 11:37]
    node _T_330 = mux(_T_193, UInt<1>("h00"), _T_329) @[Lookup.scala 11:37]
    node _T_331 = mux(_T_189, UInt<1>("h00"), _T_330) @[Lookup.scala 11:37]
    node _T_332 = mux(_T_185, UInt<1>("h00"), _T_331) @[Lookup.scala 11:37]
    node _T_333 = mux(_T_181, UInt<1>("h00"), _T_332) @[Lookup.scala 11:37]
    node _T_334 = mux(_T_177, UInt<1>("h01"), _T_333) @[Lookup.scala 11:37]
    node _T_335 = mux(_T_173, UInt<1>("h01"), _T_334) @[Lookup.scala 11:37]
    node _T_336 = mux(_T_169, UInt<1>("h01"), _T_335) @[Lookup.scala 11:37]
    node _T_337 = mux(_T_165, UInt<1>("h01"), _T_336) @[Lookup.scala 11:37]
    node _T_338 = mux(_T_161, UInt<1>("h01"), _T_337) @[Lookup.scala 11:37]
    node _T_339 = mux(_T_157, UInt<1>("h01"), _T_338) @[Lookup.scala 11:37]
    node _T_340 = mux(_T_153, UInt<1>("h01"), _T_339) @[Lookup.scala 11:37]
    node _T_341 = mux(_T_149, UInt<1>("h01"), _T_340) @[Lookup.scala 11:37]
    node _T_342 = mux(_T_145, UInt<1>("h01"), _T_341) @[Lookup.scala 11:37]
    node _T_343 = mux(_T_141, UInt<1>("h01"), _T_342) @[Lookup.scala 11:37]
    node _T_344 = mux(_T_137, UInt<1>("h00"), _T_343) @[Lookup.scala 11:37]
    node _T_345 = mux(_T_133, UInt<1>("h00"), _T_344) @[Lookup.scala 11:37]
    node _T_346 = mux(_T_129, UInt<1>("h00"), _T_345) @[Lookup.scala 11:37]
    node _T_347 = mux(_T_125, UInt<1>("h00"), _T_346) @[Lookup.scala 11:37]
    node _T_348 = mux(_T_121, UInt<1>("h00"), _T_347) @[Lookup.scala 11:37]
    node _T_349 = mux(_T_117, UInt<1>("h00"), _T_348) @[Lookup.scala 11:37]
    node _T_350 = mux(_T_113, UInt<1>("h00"), _T_349) @[Lookup.scala 11:37]
    node _T_351 = mux(_T_109, UInt<1>("h00"), _T_350) @[Lookup.scala 11:37]
    node _T_352 = mux(_T_105, UInt<1>("h00"), _T_351) @[Lookup.scala 11:37]
    node _T_353 = mux(_T_101, UInt<1>("h00"), _T_352) @[Lookup.scala 11:37]
    node _T_354 = mux(_T_97, UInt<1>("h00"), _T_353) @[Lookup.scala 11:37]
    node _T_355 = mux(_T_93, UInt<1>("h00"), _T_354) @[Lookup.scala 11:37]
    node _T_356 = mux(_T_89, UInt<1>("h00"), _T_355) @[Lookup.scala 11:37]
    node _T_357 = mux(_T_85, UInt<1>("h00"), _T_356) @[Lookup.scala 11:37]
    node _T_358 = mux(_T_81, UInt<1>("h00"), _T_357) @[Lookup.scala 11:37]
    node _T_359 = mux(_T_77, UInt<1>("h00"), _T_358) @[Lookup.scala 11:37]
    node _T_360 = mux(_T_73, UInt<1>("h00"), _T_359) @[Lookup.scala 11:37]
    node _T_361 = mux(_T_69, UInt<1>("h00"), _T_360) @[Lookup.scala 11:37]
    node _T_362 = mux(_T_65, UInt<1>("h00"), _T_361) @[Lookup.scala 11:37]
    node _T_363 = mux(_T_61, UInt<1>("h00"), _T_362) @[Lookup.scala 11:37]
    node _T_364 = mux(_T_57, UInt<1>("h00"), _T_363) @[Lookup.scala 11:37]
    node _T_365 = mux(_T_53, UInt<1>("h00"), _T_364) @[Lookup.scala 11:37]
    node _T_366 = mux(_T_49, UInt<1>("h00"), _T_365) @[Lookup.scala 11:37]
    node _T_367 = mux(_T_45, UInt<1>("h00"), _T_366) @[Lookup.scala 11:37]
    node _T_368 = mux(_T_41, UInt<1>("h00"), _T_367) @[Lookup.scala 11:37]
    node _T_369 = mux(_T_37, UInt<1>("h00"), _T_368) @[Lookup.scala 11:37]
    node ctrlSignals_2 = mux(_T_33, UInt<1>("h00"), _T_369) @[Lookup.scala 11:37]
    node _T_370 = mux(_T_225, UInt<3>("h00"), UInt<3>("h00")) @[Lookup.scala 11:37]
    node _T_371 = mux(_T_221, UInt<3>("h00"), _T_370) @[Lookup.scala 11:37]
    node _T_372 = mux(_T_217, UInt<3>("h00"), _T_371) @[Lookup.scala 11:37]
    node _T_373 = mux(_T_213, UInt<3>("h00"), _T_372) @[Lookup.scala 11:37]
    node _T_374 = mux(_T_209, UInt<3>("h06"), _T_373) @[Lookup.scala 11:37]
    node _T_375 = mux(_T_205, UInt<3>("h06"), _T_374) @[Lookup.scala 11:37]
    node _T_376 = mux(_T_201, UInt<3>("h06"), _T_375) @[Lookup.scala 11:37]
    node _T_377 = mux(_T_197, UInt<3>("h00"), _T_376) @[Lookup.scala 11:37]
    node _T_378 = mux(_T_193, UInt<3>("h00"), _T_377) @[Lookup.scala 11:37]
    node _T_379 = mux(_T_189, UInt<3>("h00"), _T_378) @[Lookup.scala 11:37]
    node _T_380 = mux(_T_185, UInt<3>("h00"), _T_379) @[Lookup.scala 11:37]
    node _T_381 = mux(_T_181, UInt<3>("h00"), _T_380) @[Lookup.scala 11:37]
    node _T_382 = mux(_T_177, UInt<3>("h00"), _T_381) @[Lookup.scala 11:37]
    node _T_383 = mux(_T_173, UInt<3>("h00"), _T_382) @[Lookup.scala 11:37]
    node _T_384 = mux(_T_169, UInt<3>("h00"), _T_383) @[Lookup.scala 11:37]
    node _T_385 = mux(_T_165, UInt<3>("h00"), _T_384) @[Lookup.scala 11:37]
    node _T_386 = mux(_T_161, UInt<3>("h00"), _T_385) @[Lookup.scala 11:37]
    node _T_387 = mux(_T_157, UInt<3>("h00"), _T_386) @[Lookup.scala 11:37]
    node _T_388 = mux(_T_153, UInt<3>("h00"), _T_387) @[Lookup.scala 11:37]
    node _T_389 = mux(_T_149, UInt<3>("h00"), _T_388) @[Lookup.scala 11:37]
    node _T_390 = mux(_T_145, UInt<3>("h00"), _T_389) @[Lookup.scala 11:37]
    node _T_391 = mux(_T_141, UInt<3>("h00"), _T_390) @[Lookup.scala 11:37]
    node _T_392 = mux(_T_137, UInt<3>("h01"), _T_391) @[Lookup.scala 11:37]
    node _T_393 = mux(_T_133, UInt<3>("h01"), _T_392) @[Lookup.scala 11:37]
    node _T_394 = mux(_T_129, UInt<3>("h01"), _T_393) @[Lookup.scala 11:37]
    node _T_395 = mux(_T_125, UInt<3>("h01"), _T_394) @[Lookup.scala 11:37]
    node _T_396 = mux(_T_121, UInt<3>("h01"), _T_395) @[Lookup.scala 11:37]
    node _T_397 = mux(_T_117, UInt<3>("h01"), _T_396) @[Lookup.scala 11:37]
    node _T_398 = mux(_T_113, UInt<3>("h01"), _T_397) @[Lookup.scala 11:37]
    node _T_399 = mux(_T_109, UInt<3>("h01"), _T_398) @[Lookup.scala 11:37]
    node _T_400 = mux(_T_105, UInt<3>("h01"), _T_399) @[Lookup.scala 11:37]
    node _T_401 = mux(_T_101, UInt<3>("h02"), _T_400) @[Lookup.scala 11:37]
    node _T_402 = mux(_T_97, UInt<3>("h02"), _T_401) @[Lookup.scala 11:37]
    node _T_403 = mux(_T_93, UInt<3>("h02"), _T_402) @[Lookup.scala 11:37]
    node _T_404 = mux(_T_89, UInt<3>("h01"), _T_403) @[Lookup.scala 11:37]
    node _T_405 = mux(_T_85, UInt<3>("h01"), _T_404) @[Lookup.scala 11:37]
    node _T_406 = mux(_T_81, UInt<3>("h01"), _T_405) @[Lookup.scala 11:37]
    node _T_407 = mux(_T_77, UInt<3>("h01"), _T_406) @[Lookup.scala 11:37]
    node _T_408 = mux(_T_73, UInt<3>("h01"), _T_407) @[Lookup.scala 11:37]
    node _T_409 = mux(_T_69, UInt<3>("h05"), _T_408) @[Lookup.scala 11:37]
    node _T_410 = mux(_T_65, UInt<3>("h05"), _T_409) @[Lookup.scala 11:37]
    node _T_411 = mux(_T_61, UInt<3>("h05"), _T_410) @[Lookup.scala 11:37]
    node _T_412 = mux(_T_57, UInt<3>("h05"), _T_411) @[Lookup.scala 11:37]
    node _T_413 = mux(_T_53, UInt<3>("h05"), _T_412) @[Lookup.scala 11:37]
    node _T_414 = mux(_T_49, UInt<3>("h05"), _T_413) @[Lookup.scala 11:37]
    node _T_415 = mux(_T_45, UInt<3>("h01"), _T_414) @[Lookup.scala 11:37]
    node _T_416 = mux(_T_41, UInt<3>("h04"), _T_415) @[Lookup.scala 11:37]
    node _T_417 = mux(_T_37, UInt<3>("h03"), _T_416) @[Lookup.scala 11:37]
    node ctrlSignals_3 = mux(_T_33, UInt<3>("h03"), _T_417) @[Lookup.scala 11:37]
    node _T_418 = mux(_T_225, UInt<4>("h0f"), UInt<4>("h0f")) @[Lookup.scala 11:37]
    node _T_419 = mux(_T_221, UInt<4>("h0f"), _T_418) @[Lookup.scala 11:37]
    node _T_420 = mux(_T_217, UInt<4>("h0f"), _T_419) @[Lookup.scala 11:37]
    node _T_421 = mux(_T_213, UInt<4>("h0f"), _T_420) @[Lookup.scala 11:37]
    node _T_422 = mux(_T_209, UInt<4>("h0f"), _T_421) @[Lookup.scala 11:37]
    node _T_423 = mux(_T_205, UInt<4>("h0f"), _T_422) @[Lookup.scala 11:37]
    node _T_424 = mux(_T_201, UInt<4>("h0f"), _T_423) @[Lookup.scala 11:37]
    node _T_425 = mux(_T_197, UInt<4>("h0a"), _T_424) @[Lookup.scala 11:37]
    node _T_426 = mux(_T_193, UInt<4>("h0a"), _T_425) @[Lookup.scala 11:37]
    node _T_427 = mux(_T_189, UInt<4>("h0a"), _T_426) @[Lookup.scala 11:37]
    node _T_428 = mux(_T_185, UInt<4>("h0f"), _T_427) @[Lookup.scala 11:37]
    node _T_429 = mux(_T_181, UInt<4>("h0f"), _T_428) @[Lookup.scala 11:37]
    node _T_430 = mux(_T_177, UInt<4>("h02"), _T_429) @[Lookup.scala 11:37]
    node _T_431 = mux(_T_173, UInt<4>("h03"), _T_430) @[Lookup.scala 11:37]
    node _T_432 = mux(_T_169, UInt<4>("h09"), _T_431) @[Lookup.scala 11:37]
    node _T_433 = mux(_T_165, UInt<4>("h08"), _T_432) @[Lookup.scala 11:37]
    node _T_434 = mux(_T_161, UInt<4>("h04"), _T_433) @[Lookup.scala 11:37]
    node _T_435 = mux(_T_157, UInt<4>("h07"), _T_434) @[Lookup.scala 11:37]
    node _T_436 = mux(_T_153, UInt<4>("h05"), _T_435) @[Lookup.scala 11:37]
    node _T_437 = mux(_T_149, UInt<4>("h06"), _T_436) @[Lookup.scala 11:37]
    node _T_438 = mux(_T_145, UInt<4>("h01"), _T_437) @[Lookup.scala 11:37]
    node _T_439 = mux(_T_141, UInt<4>("h00"), _T_438) @[Lookup.scala 11:37]
    node _T_440 = mux(_T_137, UInt<4>("h09"), _T_439) @[Lookup.scala 11:37]
    node _T_441 = mux(_T_133, UInt<4>("h08"), _T_440) @[Lookup.scala 11:37]
    node _T_442 = mux(_T_129, UInt<4>("h06"), _T_441) @[Lookup.scala 11:37]
    node _T_443 = mux(_T_125, UInt<4>("h02"), _T_442) @[Lookup.scala 11:37]
    node _T_444 = mux(_T_121, UInt<4>("h03"), _T_443) @[Lookup.scala 11:37]
    node _T_445 = mux(_T_117, UInt<4>("h04"), _T_444) @[Lookup.scala 11:37]
    node _T_446 = mux(_T_113, UInt<4>("h07"), _T_445) @[Lookup.scala 11:37]
    node _T_447 = mux(_T_109, UInt<4>("h05"), _T_446) @[Lookup.scala 11:37]
    node _T_448 = mux(_T_105, UInt<4>("h00"), _T_447) @[Lookup.scala 11:37]
    node _T_449 = mux(_T_101, UInt<4>("h00"), _T_448) @[Lookup.scala 11:37]
    node _T_450 = mux(_T_97, UInt<4>("h00"), _T_449) @[Lookup.scala 11:37]
    node _T_451 = mux(_T_93, UInt<4>("h00"), _T_450) @[Lookup.scala 11:37]
    node _T_452 = mux(_T_89, UInt<4>("h00"), _T_451) @[Lookup.scala 11:37]
    node _T_453 = mux(_T_85, UInt<4>("h00"), _T_452) @[Lookup.scala 11:37]
    node _T_454 = mux(_T_81, UInt<4>("h00"), _T_453) @[Lookup.scala 11:37]
    node _T_455 = mux(_T_77, UInt<4>("h00"), _T_454) @[Lookup.scala 11:37]
    node _T_456 = mux(_T_73, UInt<4>("h00"), _T_455) @[Lookup.scala 11:37]
    node _T_457 = mux(_T_69, UInt<4>("h00"), _T_456) @[Lookup.scala 11:37]
    node _T_458 = mux(_T_65, UInt<4>("h00"), _T_457) @[Lookup.scala 11:37]
    node _T_459 = mux(_T_61, UInt<4>("h00"), _T_458) @[Lookup.scala 11:37]
    node _T_460 = mux(_T_57, UInt<4>("h00"), _T_459) @[Lookup.scala 11:37]
    node _T_461 = mux(_T_53, UInt<4>("h00"), _T_460) @[Lookup.scala 11:37]
    node _T_462 = mux(_T_49, UInt<4>("h00"), _T_461) @[Lookup.scala 11:37]
    node _T_463 = mux(_T_45, UInt<4>("h00"), _T_462) @[Lookup.scala 11:37]
    node _T_464 = mux(_T_41, UInt<4>("h00"), _T_463) @[Lookup.scala 11:37]
    node _T_465 = mux(_T_37, UInt<4>("h00"), _T_464) @[Lookup.scala 11:37]
    node ctrlSignals_4 = mux(_T_33, UInt<4>("h0b"), _T_465) @[Lookup.scala 11:37]
    node _T_466 = mux(_T_225, UInt<3>("h00"), UInt<3>("h00")) @[Lookup.scala 11:37]
    node _T_467 = mux(_T_221, UInt<3>("h00"), _T_466) @[Lookup.scala 11:37]
    node _T_468 = mux(_T_217, UInt<3>("h00"), _T_467) @[Lookup.scala 11:37]
    node _T_469 = mux(_T_213, UInt<3>("h00"), _T_468) @[Lookup.scala 11:37]
    node _T_470 = mux(_T_209, UInt<3>("h00"), _T_469) @[Lookup.scala 11:37]
    node _T_471 = mux(_T_205, UInt<3>("h00"), _T_470) @[Lookup.scala 11:37]
    node _T_472 = mux(_T_201, UInt<3>("h00"), _T_471) @[Lookup.scala 11:37]
    node _T_473 = mux(_T_197, UInt<3>("h00"), _T_472) @[Lookup.scala 11:37]
    node _T_474 = mux(_T_193, UInt<3>("h00"), _T_473) @[Lookup.scala 11:37]
    node _T_475 = mux(_T_189, UInt<3>("h00"), _T_474) @[Lookup.scala 11:37]
    node _T_476 = mux(_T_185, UInt<3>("h00"), _T_475) @[Lookup.scala 11:37]
    node _T_477 = mux(_T_181, UInt<3>("h00"), _T_476) @[Lookup.scala 11:37]
    node _T_478 = mux(_T_177, UInt<3>("h00"), _T_477) @[Lookup.scala 11:37]
    node _T_479 = mux(_T_173, UInt<3>("h00"), _T_478) @[Lookup.scala 11:37]
    node _T_480 = mux(_T_169, UInt<3>("h00"), _T_479) @[Lookup.scala 11:37]
    node _T_481 = mux(_T_165, UInt<3>("h00"), _T_480) @[Lookup.scala 11:37]
    node _T_482 = mux(_T_161, UInt<3>("h00"), _T_481) @[Lookup.scala 11:37]
    node _T_483 = mux(_T_157, UInt<3>("h00"), _T_482) @[Lookup.scala 11:37]
    node _T_484 = mux(_T_153, UInt<3>("h00"), _T_483) @[Lookup.scala 11:37]
    node _T_485 = mux(_T_149, UInt<3>("h00"), _T_484) @[Lookup.scala 11:37]
    node _T_486 = mux(_T_145, UInt<3>("h00"), _T_485) @[Lookup.scala 11:37]
    node _T_487 = mux(_T_141, UInt<3>("h00"), _T_486) @[Lookup.scala 11:37]
    node _T_488 = mux(_T_137, UInt<3>("h00"), _T_487) @[Lookup.scala 11:37]
    node _T_489 = mux(_T_133, UInt<3>("h00"), _T_488) @[Lookup.scala 11:37]
    node _T_490 = mux(_T_129, UInt<3>("h00"), _T_489) @[Lookup.scala 11:37]
    node _T_491 = mux(_T_125, UInt<3>("h00"), _T_490) @[Lookup.scala 11:37]
    node _T_492 = mux(_T_121, UInt<3>("h00"), _T_491) @[Lookup.scala 11:37]
    node _T_493 = mux(_T_117, UInt<3>("h00"), _T_492) @[Lookup.scala 11:37]
    node _T_494 = mux(_T_113, UInt<3>("h00"), _T_493) @[Lookup.scala 11:37]
    node _T_495 = mux(_T_109, UInt<3>("h00"), _T_494) @[Lookup.scala 11:37]
    node _T_496 = mux(_T_105, UInt<3>("h00"), _T_495) @[Lookup.scala 11:37]
    node _T_497 = mux(_T_101, UInt<3>("h00"), _T_496) @[Lookup.scala 11:37]
    node _T_498 = mux(_T_97, UInt<3>("h00"), _T_497) @[Lookup.scala 11:37]
    node _T_499 = mux(_T_93, UInt<3>("h00"), _T_498) @[Lookup.scala 11:37]
    node _T_500 = mux(_T_89, UInt<3>("h00"), _T_499) @[Lookup.scala 11:37]
    node _T_501 = mux(_T_85, UInt<3>("h00"), _T_500) @[Lookup.scala 11:37]
    node _T_502 = mux(_T_81, UInt<3>("h00"), _T_501) @[Lookup.scala 11:37]
    node _T_503 = mux(_T_77, UInt<3>("h00"), _T_502) @[Lookup.scala 11:37]
    node _T_504 = mux(_T_73, UInt<3>("h00"), _T_503) @[Lookup.scala 11:37]
    node _T_505 = mux(_T_69, UInt<3>("h04"), _T_504) @[Lookup.scala 11:37]
    node _T_506 = mux(_T_65, UInt<3>("h01"), _T_505) @[Lookup.scala 11:37]
    node _T_507 = mux(_T_61, UInt<3>("h05"), _T_506) @[Lookup.scala 11:37]
    node _T_508 = mux(_T_57, UInt<3>("h02"), _T_507) @[Lookup.scala 11:37]
    node _T_509 = mux(_T_53, UInt<3>("h06"), _T_508) @[Lookup.scala 11:37]
    node _T_510 = mux(_T_49, UInt<3>("h03"), _T_509) @[Lookup.scala 11:37]
    node _T_511 = mux(_T_45, UInt<3>("h00"), _T_510) @[Lookup.scala 11:37]
    node _T_512 = mux(_T_41, UInt<3>("h00"), _T_511) @[Lookup.scala 11:37]
    node _T_513 = mux(_T_37, UInt<3>("h00"), _T_512) @[Lookup.scala 11:37]
    node ctrlSignals_5 = mux(_T_33, UInt<3>("h00"), _T_513) @[Lookup.scala 11:37]
    node _T_514 = mux(_T_225, UInt<1>("h00"), UInt<1>("h00")) @[Lookup.scala 11:37]
    node _T_515 = mux(_T_221, UInt<1>("h01"), _T_514) @[Lookup.scala 11:37]
    node _T_516 = mux(_T_217, UInt<1>("h00"), _T_515) @[Lookup.scala 11:37]
    node _T_517 = mux(_T_213, UInt<1>("h00"), _T_516) @[Lookup.scala 11:37]
    node _T_518 = mux(_T_209, UInt<1>("h01"), _T_517) @[Lookup.scala 11:37]
    node _T_519 = mux(_T_205, UInt<1>("h01"), _T_518) @[Lookup.scala 11:37]
    node _T_520 = mux(_T_201, UInt<1>("h01"), _T_519) @[Lookup.scala 11:37]
    node _T_521 = mux(_T_197, UInt<1>("h01"), _T_520) @[Lookup.scala 11:37]
    node _T_522 = mux(_T_193, UInt<1>("h01"), _T_521) @[Lookup.scala 11:37]
    node _T_523 = mux(_T_189, UInt<1>("h01"), _T_522) @[Lookup.scala 11:37]
    node _T_524 = mux(_T_185, UInt<1>("h01"), _T_523) @[Lookup.scala 11:37]
    node _T_525 = mux(_T_181, UInt<1>("h00"), _T_524) @[Lookup.scala 11:37]
    node _T_526 = mux(_T_177, UInt<1>("h00"), _T_525) @[Lookup.scala 11:37]
    node _T_527 = mux(_T_173, UInt<1>("h00"), _T_526) @[Lookup.scala 11:37]
    node _T_528 = mux(_T_169, UInt<1>("h00"), _T_527) @[Lookup.scala 11:37]
    node _T_529 = mux(_T_165, UInt<1>("h00"), _T_528) @[Lookup.scala 11:37]
    node _T_530 = mux(_T_161, UInt<1>("h00"), _T_529) @[Lookup.scala 11:37]
    node _T_531 = mux(_T_157, UInt<1>("h00"), _T_530) @[Lookup.scala 11:37]
    node _T_532 = mux(_T_153, UInt<1>("h00"), _T_531) @[Lookup.scala 11:37]
    node _T_533 = mux(_T_149, UInt<1>("h00"), _T_532) @[Lookup.scala 11:37]
    node _T_534 = mux(_T_145, UInt<1>("h00"), _T_533) @[Lookup.scala 11:37]
    node _T_535 = mux(_T_141, UInt<1>("h00"), _T_534) @[Lookup.scala 11:37]
    node _T_536 = mux(_T_137, UInt<1>("h00"), _T_535) @[Lookup.scala 11:37]
    node _T_537 = mux(_T_133, UInt<1>("h00"), _T_536) @[Lookup.scala 11:37]
    node _T_538 = mux(_T_129, UInt<1>("h00"), _T_537) @[Lookup.scala 11:37]
    node _T_539 = mux(_T_125, UInt<1>("h00"), _T_538) @[Lookup.scala 11:37]
    node _T_540 = mux(_T_121, UInt<1>("h00"), _T_539) @[Lookup.scala 11:37]
    node _T_541 = mux(_T_117, UInt<1>("h00"), _T_540) @[Lookup.scala 11:37]
    node _T_542 = mux(_T_113, UInt<1>("h00"), _T_541) @[Lookup.scala 11:37]
    node _T_543 = mux(_T_109, UInt<1>("h00"), _T_542) @[Lookup.scala 11:37]
    node _T_544 = mux(_T_105, UInt<1>("h00"), _T_543) @[Lookup.scala 11:37]
    node _T_545 = mux(_T_101, UInt<1>("h00"), _T_544) @[Lookup.scala 11:37]
    node _T_546 = mux(_T_97, UInt<1>("h00"), _T_545) @[Lookup.scala 11:37]
    node _T_547 = mux(_T_93, UInt<1>("h00"), _T_546) @[Lookup.scala 11:37]
    node _T_548 = mux(_T_89, UInt<1>("h01"), _T_547) @[Lookup.scala 11:37]
    node _T_549 = mux(_T_85, UInt<1>("h01"), _T_548) @[Lookup.scala 11:37]
    node _T_550 = mux(_T_81, UInt<1>("h01"), _T_549) @[Lookup.scala 11:37]
    node _T_551 = mux(_T_77, UInt<1>("h01"), _T_550) @[Lookup.scala 11:37]
    node _T_552 = mux(_T_73, UInt<1>("h01"), _T_551) @[Lookup.scala 11:37]
    node _T_553 = mux(_T_69, UInt<1>("h00"), _T_552) @[Lookup.scala 11:37]
    node _T_554 = mux(_T_65, UInt<1>("h00"), _T_553) @[Lookup.scala 11:37]
    node _T_555 = mux(_T_61, UInt<1>("h00"), _T_554) @[Lookup.scala 11:37]
    node _T_556 = mux(_T_57, UInt<1>("h00"), _T_555) @[Lookup.scala 11:37]
    node _T_557 = mux(_T_53, UInt<1>("h00"), _T_556) @[Lookup.scala 11:37]
    node _T_558 = mux(_T_49, UInt<1>("h00"), _T_557) @[Lookup.scala 11:37]
    node _T_559 = mux(_T_45, UInt<1>("h01"), _T_558) @[Lookup.scala 11:37]
    node _T_560 = mux(_T_41, UInt<1>("h01"), _T_559) @[Lookup.scala 11:37]
    node _T_561 = mux(_T_37, UInt<1>("h00"), _T_560) @[Lookup.scala 11:37]
    node ctrlSignals_6 = mux(_T_33, UInt<1>("h00"), _T_561) @[Lookup.scala 11:37]
    node _T_562 = mux(_T_225, UInt<2>("h00"), UInt<2>("h00")) @[Lookup.scala 11:37]
    node _T_563 = mux(_T_221, UInt<2>("h00"), _T_562) @[Lookup.scala 11:37]
    node _T_564 = mux(_T_217, UInt<2>("h00"), _T_563) @[Lookup.scala 11:37]
    node _T_565 = mux(_T_213, UInt<2>("h00"), _T_564) @[Lookup.scala 11:37]
    node _T_566 = mux(_T_209, UInt<2>("h00"), _T_565) @[Lookup.scala 11:37]
    node _T_567 = mux(_T_205, UInt<2>("h00"), _T_566) @[Lookup.scala 11:37]
    node _T_568 = mux(_T_201, UInt<2>("h00"), _T_567) @[Lookup.scala 11:37]
    node _T_569 = mux(_T_197, UInt<2>("h00"), _T_568) @[Lookup.scala 11:37]
    node _T_570 = mux(_T_193, UInt<2>("h00"), _T_569) @[Lookup.scala 11:37]
    node _T_571 = mux(_T_189, UInt<2>("h00"), _T_570) @[Lookup.scala 11:37]
    node _T_572 = mux(_T_185, UInt<2>("h00"), _T_571) @[Lookup.scala 11:37]
    node _T_573 = mux(_T_181, UInt<2>("h00"), _T_572) @[Lookup.scala 11:37]
    node _T_574 = mux(_T_177, UInt<2>("h00"), _T_573) @[Lookup.scala 11:37]
    node _T_575 = mux(_T_173, UInt<2>("h00"), _T_574) @[Lookup.scala 11:37]
    node _T_576 = mux(_T_169, UInt<2>("h00"), _T_575) @[Lookup.scala 11:37]
    node _T_577 = mux(_T_165, UInt<2>("h00"), _T_576) @[Lookup.scala 11:37]
    node _T_578 = mux(_T_161, UInt<2>("h00"), _T_577) @[Lookup.scala 11:37]
    node _T_579 = mux(_T_157, UInt<2>("h00"), _T_578) @[Lookup.scala 11:37]
    node _T_580 = mux(_T_153, UInt<2>("h00"), _T_579) @[Lookup.scala 11:37]
    node _T_581 = mux(_T_149, UInt<2>("h00"), _T_580) @[Lookup.scala 11:37]
    node _T_582 = mux(_T_145, UInt<2>("h00"), _T_581) @[Lookup.scala 11:37]
    node _T_583 = mux(_T_141, UInt<2>("h00"), _T_582) @[Lookup.scala 11:37]
    node _T_584 = mux(_T_137, UInt<2>("h00"), _T_583) @[Lookup.scala 11:37]
    node _T_585 = mux(_T_133, UInt<2>("h00"), _T_584) @[Lookup.scala 11:37]
    node _T_586 = mux(_T_129, UInt<2>("h00"), _T_585) @[Lookup.scala 11:37]
    node _T_587 = mux(_T_125, UInt<2>("h00"), _T_586) @[Lookup.scala 11:37]
    node _T_588 = mux(_T_121, UInt<2>("h00"), _T_587) @[Lookup.scala 11:37]
    node _T_589 = mux(_T_117, UInt<2>("h00"), _T_588) @[Lookup.scala 11:37]
    node _T_590 = mux(_T_113, UInt<2>("h00"), _T_589) @[Lookup.scala 11:37]
    node _T_591 = mux(_T_109, UInt<2>("h00"), _T_590) @[Lookup.scala 11:37]
    node _T_592 = mux(_T_105, UInt<2>("h00"), _T_591) @[Lookup.scala 11:37]
    node _T_593 = mux(_T_101, UInt<2>("h01"), _T_592) @[Lookup.scala 11:37]
    node _T_594 = mux(_T_97, UInt<2>("h02"), _T_593) @[Lookup.scala 11:37]
    node _T_595 = mux(_T_93, UInt<2>("h03"), _T_594) @[Lookup.scala 11:37]
    node _T_596 = mux(_T_89, UInt<2>("h00"), _T_595) @[Lookup.scala 11:37]
    node _T_597 = mux(_T_85, UInt<2>("h00"), _T_596) @[Lookup.scala 11:37]
    node _T_598 = mux(_T_81, UInt<2>("h00"), _T_597) @[Lookup.scala 11:37]
    node _T_599 = mux(_T_77, UInt<2>("h00"), _T_598) @[Lookup.scala 11:37]
    node _T_600 = mux(_T_73, UInt<2>("h00"), _T_599) @[Lookup.scala 11:37]
    node _T_601 = mux(_T_69, UInt<2>("h00"), _T_600) @[Lookup.scala 11:37]
    node _T_602 = mux(_T_65, UInt<2>("h00"), _T_601) @[Lookup.scala 11:37]
    node _T_603 = mux(_T_61, UInt<2>("h00"), _T_602) @[Lookup.scala 11:37]
    node _T_604 = mux(_T_57, UInt<2>("h00"), _T_603) @[Lookup.scala 11:37]
    node _T_605 = mux(_T_53, UInt<2>("h00"), _T_604) @[Lookup.scala 11:37]
    node _T_606 = mux(_T_49, UInt<2>("h00"), _T_605) @[Lookup.scala 11:37]
    node _T_607 = mux(_T_45, UInt<2>("h00"), _T_606) @[Lookup.scala 11:37]
    node _T_608 = mux(_T_41, UInt<2>("h00"), _T_607) @[Lookup.scala 11:37]
    node _T_609 = mux(_T_37, UInt<2>("h00"), _T_608) @[Lookup.scala 11:37]
    node ctrlSignals_7 = mux(_T_33, UInt<2>("h00"), _T_609) @[Lookup.scala 11:37]
    node _T_610 = mux(_T_225, UInt<3>("h00"), UInt<3>("h00")) @[Lookup.scala 11:37]
    node _T_611 = mux(_T_221, UInt<3>("h00"), _T_610) @[Lookup.scala 11:37]
    node _T_612 = mux(_T_217, UInt<3>("h00"), _T_611) @[Lookup.scala 11:37]
    node _T_613 = mux(_T_213, UInt<3>("h00"), _T_612) @[Lookup.scala 11:37]
    node _T_614 = mux(_T_209, UInt<3>("h00"), _T_613) @[Lookup.scala 11:37]
    node _T_615 = mux(_T_205, UInt<3>("h00"), _T_614) @[Lookup.scala 11:37]
    node _T_616 = mux(_T_201, UInt<3>("h00"), _T_615) @[Lookup.scala 11:37]
    node _T_617 = mux(_T_197, UInt<3>("h00"), _T_616) @[Lookup.scala 11:37]
    node _T_618 = mux(_T_193, UInt<3>("h00"), _T_617) @[Lookup.scala 11:37]
    node _T_619 = mux(_T_189, UInt<3>("h00"), _T_618) @[Lookup.scala 11:37]
    node _T_620 = mux(_T_185, UInt<3>("h00"), _T_619) @[Lookup.scala 11:37]
    node _T_621 = mux(_T_181, UInt<3>("h00"), _T_620) @[Lookup.scala 11:37]
    node _T_622 = mux(_T_177, UInt<3>("h00"), _T_621) @[Lookup.scala 11:37]
    node _T_623 = mux(_T_173, UInt<3>("h00"), _T_622) @[Lookup.scala 11:37]
    node _T_624 = mux(_T_169, UInt<3>("h00"), _T_623) @[Lookup.scala 11:37]
    node _T_625 = mux(_T_165, UInt<3>("h00"), _T_624) @[Lookup.scala 11:37]
    node _T_626 = mux(_T_161, UInt<3>("h00"), _T_625) @[Lookup.scala 11:37]
    node _T_627 = mux(_T_157, UInt<3>("h00"), _T_626) @[Lookup.scala 11:37]
    node _T_628 = mux(_T_153, UInt<3>("h00"), _T_627) @[Lookup.scala 11:37]
    node _T_629 = mux(_T_149, UInt<3>("h00"), _T_628) @[Lookup.scala 11:37]
    node _T_630 = mux(_T_145, UInt<3>("h00"), _T_629) @[Lookup.scala 11:37]
    node _T_631 = mux(_T_141, UInt<3>("h00"), _T_630) @[Lookup.scala 11:37]
    node _T_632 = mux(_T_137, UInt<3>("h00"), _T_631) @[Lookup.scala 11:37]
    node _T_633 = mux(_T_133, UInt<3>("h00"), _T_632) @[Lookup.scala 11:37]
    node _T_634 = mux(_T_129, UInt<3>("h00"), _T_633) @[Lookup.scala 11:37]
    node _T_635 = mux(_T_125, UInt<3>("h00"), _T_634) @[Lookup.scala 11:37]
    node _T_636 = mux(_T_121, UInt<3>("h00"), _T_635) @[Lookup.scala 11:37]
    node _T_637 = mux(_T_117, UInt<3>("h00"), _T_636) @[Lookup.scala 11:37]
    node _T_638 = mux(_T_113, UInt<3>("h00"), _T_637) @[Lookup.scala 11:37]
    node _T_639 = mux(_T_109, UInt<3>("h00"), _T_638) @[Lookup.scala 11:37]
    node _T_640 = mux(_T_105, UInt<3>("h00"), _T_639) @[Lookup.scala 11:37]
    node _T_641 = mux(_T_101, UInt<3>("h00"), _T_640) @[Lookup.scala 11:37]
    node _T_642 = mux(_T_97, UInt<3>("h00"), _T_641) @[Lookup.scala 11:37]
    node _T_643 = mux(_T_93, UInt<3>("h00"), _T_642) @[Lookup.scala 11:37]
    node _T_644 = mux(_T_89, UInt<3>("h04"), _T_643) @[Lookup.scala 11:37]
    node _T_645 = mux(_T_85, UInt<3>("h05"), _T_644) @[Lookup.scala 11:37]
    node _T_646 = mux(_T_81, UInt<3>("h01"), _T_645) @[Lookup.scala 11:37]
    node _T_647 = mux(_T_77, UInt<3>("h02"), _T_646) @[Lookup.scala 11:37]
    node _T_648 = mux(_T_73, UInt<3>("h03"), _T_647) @[Lookup.scala 11:37]
    node _T_649 = mux(_T_69, UInt<3>("h00"), _T_648) @[Lookup.scala 11:37]
    node _T_650 = mux(_T_65, UInt<3>("h00"), _T_649) @[Lookup.scala 11:37]
    node _T_651 = mux(_T_61, UInt<3>("h00"), _T_650) @[Lookup.scala 11:37]
    node _T_652 = mux(_T_57, UInt<3>("h00"), _T_651) @[Lookup.scala 11:37]
    node _T_653 = mux(_T_53, UInt<3>("h00"), _T_652) @[Lookup.scala 11:37]
    node _T_654 = mux(_T_49, UInt<3>("h00"), _T_653) @[Lookup.scala 11:37]
    node _T_655 = mux(_T_45, UInt<3>("h00"), _T_654) @[Lookup.scala 11:37]
    node _T_656 = mux(_T_41, UInt<3>("h00"), _T_655) @[Lookup.scala 11:37]
    node _T_657 = mux(_T_37, UInt<3>("h00"), _T_656) @[Lookup.scala 11:37]
    node ctrlSignals_8 = mux(_T_33, UInt<3>("h00"), _T_657) @[Lookup.scala 11:37]
    node _T_658 = mux(_T_225, UInt<2>("h00"), UInt<2>("h00")) @[Lookup.scala 11:37]
    node _T_659 = mux(_T_221, UInt<2>("h03"), _T_658) @[Lookup.scala 11:37]
    node _T_660 = mux(_T_217, UInt<2>("h03"), _T_659) @[Lookup.scala 11:37]
    node _T_661 = mux(_T_213, UInt<2>("h03"), _T_660) @[Lookup.scala 11:37]
    node _T_662 = mux(_T_209, UInt<2>("h03"), _T_661) @[Lookup.scala 11:37]
    node _T_663 = mux(_T_205, UInt<2>("h03"), _T_662) @[Lookup.scala 11:37]
    node _T_664 = mux(_T_201, UInt<2>("h03"), _T_663) @[Lookup.scala 11:37]
    node _T_665 = mux(_T_197, UInt<2>("h03"), _T_664) @[Lookup.scala 11:37]
    node _T_666 = mux(_T_193, UInt<2>("h03"), _T_665) @[Lookup.scala 11:37]
    node _T_667 = mux(_T_189, UInt<2>("h03"), _T_666) @[Lookup.scala 11:37]
    node _T_668 = mux(_T_185, UInt<2>("h00"), _T_667) @[Lookup.scala 11:37]
    node _T_669 = mux(_T_181, UInt<2>("h00"), _T_668) @[Lookup.scala 11:37]
    node _T_670 = mux(_T_177, UInt<2>("h00"), _T_669) @[Lookup.scala 11:37]
    node _T_671 = mux(_T_173, UInt<2>("h00"), _T_670) @[Lookup.scala 11:37]
    node _T_672 = mux(_T_169, UInt<2>("h00"), _T_671) @[Lookup.scala 11:37]
    node _T_673 = mux(_T_165, UInt<2>("h00"), _T_672) @[Lookup.scala 11:37]
    node _T_674 = mux(_T_161, UInt<2>("h00"), _T_673) @[Lookup.scala 11:37]
    node _T_675 = mux(_T_157, UInt<2>("h00"), _T_674) @[Lookup.scala 11:37]
    node _T_676 = mux(_T_153, UInt<2>("h00"), _T_675) @[Lookup.scala 11:37]
    node _T_677 = mux(_T_149, UInt<2>("h00"), _T_676) @[Lookup.scala 11:37]
    node _T_678 = mux(_T_145, UInt<2>("h00"), _T_677) @[Lookup.scala 11:37]
    node _T_679 = mux(_T_141, UInt<2>("h00"), _T_678) @[Lookup.scala 11:37]
    node _T_680 = mux(_T_137, UInt<2>("h00"), _T_679) @[Lookup.scala 11:37]
    node _T_681 = mux(_T_133, UInt<2>("h00"), _T_680) @[Lookup.scala 11:37]
    node _T_682 = mux(_T_129, UInt<2>("h00"), _T_681) @[Lookup.scala 11:37]
    node _T_683 = mux(_T_125, UInt<2>("h00"), _T_682) @[Lookup.scala 11:37]
    node _T_684 = mux(_T_121, UInt<2>("h00"), _T_683) @[Lookup.scala 11:37]
    node _T_685 = mux(_T_117, UInt<2>("h00"), _T_684) @[Lookup.scala 11:37]
    node _T_686 = mux(_T_113, UInt<2>("h00"), _T_685) @[Lookup.scala 11:37]
    node _T_687 = mux(_T_109, UInt<2>("h00"), _T_686) @[Lookup.scala 11:37]
    node _T_688 = mux(_T_105, UInt<2>("h00"), _T_687) @[Lookup.scala 11:37]
    node _T_689 = mux(_T_101, UInt<2>("h00"), _T_688) @[Lookup.scala 11:37]
    node _T_690 = mux(_T_97, UInt<2>("h00"), _T_689) @[Lookup.scala 11:37]
    node _T_691 = mux(_T_93, UInt<2>("h00"), _T_690) @[Lookup.scala 11:37]
    node _T_692 = mux(_T_89, UInt<2>("h01"), _T_691) @[Lookup.scala 11:37]
    node _T_693 = mux(_T_85, UInt<2>("h01"), _T_692) @[Lookup.scala 11:37]
    node _T_694 = mux(_T_81, UInt<2>("h01"), _T_693) @[Lookup.scala 11:37]
    node _T_695 = mux(_T_77, UInt<2>("h01"), _T_694) @[Lookup.scala 11:37]
    node _T_696 = mux(_T_73, UInt<2>("h01"), _T_695) @[Lookup.scala 11:37]
    node _T_697 = mux(_T_69, UInt<2>("h00"), _T_696) @[Lookup.scala 11:37]
    node _T_698 = mux(_T_65, UInt<2>("h00"), _T_697) @[Lookup.scala 11:37]
    node _T_699 = mux(_T_61, UInt<2>("h00"), _T_698) @[Lookup.scala 11:37]
    node _T_700 = mux(_T_57, UInt<2>("h00"), _T_699) @[Lookup.scala 11:37]
    node _T_701 = mux(_T_53, UInt<2>("h00"), _T_700) @[Lookup.scala 11:37]
    node _T_702 = mux(_T_49, UInt<2>("h00"), _T_701) @[Lookup.scala 11:37]
    node _T_703 = mux(_T_45, UInt<2>("h02"), _T_702) @[Lookup.scala 11:37]
    node _T_704 = mux(_T_41, UInt<2>("h02"), _T_703) @[Lookup.scala 11:37]
    node _T_705 = mux(_T_37, UInt<2>("h00"), _T_704) @[Lookup.scala 11:37]
    node ctrlSignals_9 = mux(_T_33, UInt<2>("h00"), _T_705) @[Lookup.scala 11:37]
    node _T_706 = mux(_T_225, UInt<1>("h00"), UInt<1>("h00")) @[Lookup.scala 11:37]
    node _T_707 = mux(_T_221, UInt<1>("h00"), _T_706) @[Lookup.scala 11:37]
    node _T_708 = mux(_T_217, UInt<1>("h00"), _T_707) @[Lookup.scala 11:37]
    node _T_709 = mux(_T_213, UInt<1>("h00"), _T_708) @[Lookup.scala 11:37]
    node _T_710 = mux(_T_209, UInt<1>("h01"), _T_709) @[Lookup.scala 11:37]
    node _T_711 = mux(_T_205, UInt<1>("h01"), _T_710) @[Lookup.scala 11:37]
    node _T_712 = mux(_T_201, UInt<1>("h01"), _T_711) @[Lookup.scala 11:37]
    node _T_713 = mux(_T_197, UInt<1>("h01"), _T_712) @[Lookup.scala 11:37]
    node _T_714 = mux(_T_193, UInt<1>("h01"), _T_713) @[Lookup.scala 11:37]
    node _T_715 = mux(_T_189, UInt<1>("h01"), _T_714) @[Lookup.scala 11:37]
    node _T_716 = mux(_T_185, UInt<1>("h00"), _T_715) @[Lookup.scala 11:37]
    node _T_717 = mux(_T_181, UInt<1>("h00"), _T_716) @[Lookup.scala 11:37]
    node _T_718 = mux(_T_177, UInt<1>("h01"), _T_717) @[Lookup.scala 11:37]
    node _T_719 = mux(_T_173, UInt<1>("h01"), _T_718) @[Lookup.scala 11:37]
    node _T_720 = mux(_T_169, UInt<1>("h01"), _T_719) @[Lookup.scala 11:37]
    node _T_721 = mux(_T_165, UInt<1>("h01"), _T_720) @[Lookup.scala 11:37]
    node _T_722 = mux(_T_161, UInt<1>("h01"), _T_721) @[Lookup.scala 11:37]
    node _T_723 = mux(_T_157, UInt<1>("h01"), _T_722) @[Lookup.scala 11:37]
    node _T_724 = mux(_T_153, UInt<1>("h01"), _T_723) @[Lookup.scala 11:37]
    node _T_725 = mux(_T_149, UInt<1>("h01"), _T_724) @[Lookup.scala 11:37]
    node _T_726 = mux(_T_145, UInt<1>("h01"), _T_725) @[Lookup.scala 11:37]
    node _T_727 = mux(_T_141, UInt<1>("h01"), _T_726) @[Lookup.scala 11:37]
    node _T_728 = mux(_T_137, UInt<1>("h01"), _T_727) @[Lookup.scala 11:37]
    node _T_729 = mux(_T_133, UInt<1>("h01"), _T_728) @[Lookup.scala 11:37]
    node _T_730 = mux(_T_129, UInt<1>("h01"), _T_729) @[Lookup.scala 11:37]
    node _T_731 = mux(_T_125, UInt<1>("h01"), _T_730) @[Lookup.scala 11:37]
    node _T_732 = mux(_T_121, UInt<1>("h01"), _T_731) @[Lookup.scala 11:37]
    node _T_733 = mux(_T_117, UInt<1>("h01"), _T_732) @[Lookup.scala 11:37]
    node _T_734 = mux(_T_113, UInt<1>("h01"), _T_733) @[Lookup.scala 11:37]
    node _T_735 = mux(_T_109, UInt<1>("h01"), _T_734) @[Lookup.scala 11:37]
    node _T_736 = mux(_T_105, UInt<1>("h01"), _T_735) @[Lookup.scala 11:37]
    node _T_737 = mux(_T_101, UInt<1>("h00"), _T_736) @[Lookup.scala 11:37]
    node _T_738 = mux(_T_97, UInt<1>("h00"), _T_737) @[Lookup.scala 11:37]
    node _T_739 = mux(_T_93, UInt<1>("h00"), _T_738) @[Lookup.scala 11:37]
    node _T_740 = mux(_T_89, UInt<1>("h01"), _T_739) @[Lookup.scala 11:37]
    node _T_741 = mux(_T_85, UInt<1>("h01"), _T_740) @[Lookup.scala 11:37]
    node _T_742 = mux(_T_81, UInt<1>("h01"), _T_741) @[Lookup.scala 11:37]
    node _T_743 = mux(_T_77, UInt<1>("h01"), _T_742) @[Lookup.scala 11:37]
    node _T_744 = mux(_T_73, UInt<1>("h01"), _T_743) @[Lookup.scala 11:37]
    node _T_745 = mux(_T_69, UInt<1>("h00"), _T_744) @[Lookup.scala 11:37]
    node _T_746 = mux(_T_65, UInt<1>("h00"), _T_745) @[Lookup.scala 11:37]
    node _T_747 = mux(_T_61, UInt<1>("h00"), _T_746) @[Lookup.scala 11:37]
    node _T_748 = mux(_T_57, UInt<1>("h00"), _T_747) @[Lookup.scala 11:37]
    node _T_749 = mux(_T_53, UInt<1>("h00"), _T_748) @[Lookup.scala 11:37]
    node _T_750 = mux(_T_49, UInt<1>("h00"), _T_749) @[Lookup.scala 11:37]
    node _T_751 = mux(_T_45, UInt<1>("h01"), _T_750) @[Lookup.scala 11:37]
    node _T_752 = mux(_T_41, UInt<1>("h01"), _T_751) @[Lookup.scala 11:37]
    node _T_753 = mux(_T_37, UInt<1>("h01"), _T_752) @[Lookup.scala 11:37]
    node ctrlSignals_10 = mux(_T_33, UInt<1>("h01"), _T_753) @[Lookup.scala 11:37]
    node _T_754 = mux(_T_225, UInt<3>("h00"), UInt<3>("h00")) @[Lookup.scala 11:37]
    node _T_755 = mux(_T_221, UInt<3>("h04"), _T_754) @[Lookup.scala 11:37]
    node _T_756 = mux(_T_217, UInt<3>("h04"), _T_755) @[Lookup.scala 11:37]
    node _T_757 = mux(_T_213, UInt<3>("h04"), _T_756) @[Lookup.scala 11:37]
    node _T_758 = mux(_T_209, UInt<3>("h03"), _T_757) @[Lookup.scala 11:37]
    node _T_759 = mux(_T_205, UInt<3>("h02"), _T_758) @[Lookup.scala 11:37]
    node _T_760 = mux(_T_201, UInt<3>("h01"), _T_759) @[Lookup.scala 11:37]
    node _T_761 = mux(_T_197, UInt<3>("h03"), _T_760) @[Lookup.scala 11:37]
    node _T_762 = mux(_T_193, UInt<3>("h02"), _T_761) @[Lookup.scala 11:37]
    node _T_763 = mux(_T_189, UInt<3>("h01"), _T_762) @[Lookup.scala 11:37]
    node _T_764 = mux(_T_185, UInt<3>("h00"), _T_763) @[Lookup.scala 11:37]
    node _T_765 = mux(_T_181, UInt<3>("h00"), _T_764) @[Lookup.scala 11:37]
    node _T_766 = mux(_T_177, UInt<3>("h00"), _T_765) @[Lookup.scala 11:37]
    node _T_767 = mux(_T_173, UInt<3>("h00"), _T_766) @[Lookup.scala 11:37]
    node _T_768 = mux(_T_169, UInt<3>("h00"), _T_767) @[Lookup.scala 11:37]
    node _T_769 = mux(_T_165, UInt<3>("h00"), _T_768) @[Lookup.scala 11:37]
    node _T_770 = mux(_T_161, UInt<3>("h00"), _T_769) @[Lookup.scala 11:37]
    node _T_771 = mux(_T_157, UInt<3>("h00"), _T_770) @[Lookup.scala 11:37]
    node _T_772 = mux(_T_153, UInt<3>("h00"), _T_771) @[Lookup.scala 11:37]
    node _T_773 = mux(_T_149, UInt<3>("h00"), _T_772) @[Lookup.scala 11:37]
    node _T_774 = mux(_T_145, UInt<3>("h00"), _T_773) @[Lookup.scala 11:37]
    node _T_775 = mux(_T_141, UInt<3>("h00"), _T_774) @[Lookup.scala 11:37]
    node _T_776 = mux(_T_137, UInt<3>("h00"), _T_775) @[Lookup.scala 11:37]
    node _T_777 = mux(_T_133, UInt<3>("h00"), _T_776) @[Lookup.scala 11:37]
    node _T_778 = mux(_T_129, UInt<3>("h00"), _T_777) @[Lookup.scala 11:37]
    node _T_779 = mux(_T_125, UInt<3>("h00"), _T_778) @[Lookup.scala 11:37]
    node _T_780 = mux(_T_121, UInt<3>("h00"), _T_779) @[Lookup.scala 11:37]
    node _T_781 = mux(_T_117, UInt<3>("h00"), _T_780) @[Lookup.scala 11:37]
    node _T_782 = mux(_T_113, UInt<3>("h00"), _T_781) @[Lookup.scala 11:37]
    node _T_783 = mux(_T_109, UInt<3>("h00"), _T_782) @[Lookup.scala 11:37]
    node _T_784 = mux(_T_105, UInt<3>("h00"), _T_783) @[Lookup.scala 11:37]
    node _T_785 = mux(_T_101, UInt<3>("h00"), _T_784) @[Lookup.scala 11:37]
    node _T_786 = mux(_T_97, UInt<3>("h00"), _T_785) @[Lookup.scala 11:37]
    node _T_787 = mux(_T_93, UInt<3>("h00"), _T_786) @[Lookup.scala 11:37]
    node _T_788 = mux(_T_89, UInt<3>("h00"), _T_787) @[Lookup.scala 11:37]
    node _T_789 = mux(_T_85, UInt<3>("h00"), _T_788) @[Lookup.scala 11:37]
    node _T_790 = mux(_T_81, UInt<3>("h00"), _T_789) @[Lookup.scala 11:37]
    node _T_791 = mux(_T_77, UInt<3>("h00"), _T_790) @[Lookup.scala 11:37]
    node _T_792 = mux(_T_73, UInt<3>("h00"), _T_791) @[Lookup.scala 11:37]
    node _T_793 = mux(_T_69, UInt<3>("h00"), _T_792) @[Lookup.scala 11:37]
    node _T_794 = mux(_T_65, UInt<3>("h00"), _T_793) @[Lookup.scala 11:37]
    node _T_795 = mux(_T_61, UInt<3>("h00"), _T_794) @[Lookup.scala 11:37]
    node _T_796 = mux(_T_57, UInt<3>("h00"), _T_795) @[Lookup.scala 11:37]
    node _T_797 = mux(_T_53, UInt<3>("h00"), _T_796) @[Lookup.scala 11:37]
    node _T_798 = mux(_T_49, UInt<3>("h00"), _T_797) @[Lookup.scala 11:37]
    node _T_799 = mux(_T_45, UInt<3>("h00"), _T_798) @[Lookup.scala 11:37]
    node _T_800 = mux(_T_41, UInt<3>("h00"), _T_799) @[Lookup.scala 11:37]
    node _T_801 = mux(_T_37, UInt<3>("h00"), _T_800) @[Lookup.scala 11:37]
    node ctrlSignals_11 = mux(_T_33, UInt<3>("h00"), _T_801) @[Lookup.scala 11:37]
    node _T_802 = mux(_T_225, UInt<1>("h00"), UInt<1>("h01")) @[Lookup.scala 11:37]
    node _T_803 = mux(_T_221, UInt<1>("h00"), _T_802) @[Lookup.scala 11:37]
    node _T_804 = mux(_T_217, UInt<1>("h00"), _T_803) @[Lookup.scala 11:37]
    node _T_805 = mux(_T_213, UInt<1>("h00"), _T_804) @[Lookup.scala 11:37]
    node _T_806 = mux(_T_209, UInt<1>("h00"), _T_805) @[Lookup.scala 11:37]
    node _T_807 = mux(_T_205, UInt<1>("h00"), _T_806) @[Lookup.scala 11:37]
    node _T_808 = mux(_T_201, UInt<1>("h00"), _T_807) @[Lookup.scala 11:37]
    node _T_809 = mux(_T_197, UInt<1>("h00"), _T_808) @[Lookup.scala 11:37]
    node _T_810 = mux(_T_193, UInt<1>("h00"), _T_809) @[Lookup.scala 11:37]
    node _T_811 = mux(_T_189, UInt<1>("h00"), _T_810) @[Lookup.scala 11:37]
    node _T_812 = mux(_T_185, UInt<1>("h00"), _T_811) @[Lookup.scala 11:37]
    node _T_813 = mux(_T_181, UInt<1>("h00"), _T_812) @[Lookup.scala 11:37]
    node _T_814 = mux(_T_177, UInt<1>("h00"), _T_813) @[Lookup.scala 11:37]
    node _T_815 = mux(_T_173, UInt<1>("h00"), _T_814) @[Lookup.scala 11:37]
    node _T_816 = mux(_T_169, UInt<1>("h00"), _T_815) @[Lookup.scala 11:37]
    node _T_817 = mux(_T_165, UInt<1>("h00"), _T_816) @[Lookup.scala 11:37]
    node _T_818 = mux(_T_161, UInt<1>("h00"), _T_817) @[Lookup.scala 11:37]
    node _T_819 = mux(_T_157, UInt<1>("h00"), _T_818) @[Lookup.scala 11:37]
    node _T_820 = mux(_T_153, UInt<1>("h00"), _T_819) @[Lookup.scala 11:37]
    node _T_821 = mux(_T_149, UInt<1>("h00"), _T_820) @[Lookup.scala 11:37]
    node _T_822 = mux(_T_145, UInt<1>("h00"), _T_821) @[Lookup.scala 11:37]
    node _T_823 = mux(_T_141, UInt<1>("h00"), _T_822) @[Lookup.scala 11:37]
    node _T_824 = mux(_T_137, UInt<1>("h00"), _T_823) @[Lookup.scala 11:37]
    node _T_825 = mux(_T_133, UInt<1>("h00"), _T_824) @[Lookup.scala 11:37]
    node _T_826 = mux(_T_129, UInt<1>("h00"), _T_825) @[Lookup.scala 11:37]
    node _T_827 = mux(_T_125, UInt<1>("h00"), _T_826) @[Lookup.scala 11:37]
    node _T_828 = mux(_T_121, UInt<1>("h00"), _T_827) @[Lookup.scala 11:37]
    node _T_829 = mux(_T_117, UInt<1>("h00"), _T_828) @[Lookup.scala 11:37]
    node _T_830 = mux(_T_113, UInt<1>("h00"), _T_829) @[Lookup.scala 11:37]
    node _T_831 = mux(_T_109, UInt<1>("h00"), _T_830) @[Lookup.scala 11:37]
    node _T_832 = mux(_T_105, UInt<1>("h00"), _T_831) @[Lookup.scala 11:37]
    node _T_833 = mux(_T_101, UInt<1>("h00"), _T_832) @[Lookup.scala 11:37]
    node _T_834 = mux(_T_97, UInt<1>("h00"), _T_833) @[Lookup.scala 11:37]
    node _T_835 = mux(_T_93, UInt<1>("h00"), _T_834) @[Lookup.scala 11:37]
    node _T_836 = mux(_T_89, UInt<1>("h00"), _T_835) @[Lookup.scala 11:37]
    node _T_837 = mux(_T_85, UInt<1>("h00"), _T_836) @[Lookup.scala 11:37]
    node _T_838 = mux(_T_81, UInt<1>("h00"), _T_837) @[Lookup.scala 11:37]
    node _T_839 = mux(_T_77, UInt<1>("h00"), _T_838) @[Lookup.scala 11:37]
    node _T_840 = mux(_T_73, UInt<1>("h00"), _T_839) @[Lookup.scala 11:37]
    node _T_841 = mux(_T_69, UInt<1>("h00"), _T_840) @[Lookup.scala 11:37]
    node _T_842 = mux(_T_65, UInt<1>("h00"), _T_841) @[Lookup.scala 11:37]
    node _T_843 = mux(_T_61, UInt<1>("h00"), _T_842) @[Lookup.scala 11:37]
    node _T_844 = mux(_T_57, UInt<1>("h00"), _T_843) @[Lookup.scala 11:37]
    node _T_845 = mux(_T_53, UInt<1>("h00"), _T_844) @[Lookup.scala 11:37]
    node _T_846 = mux(_T_49, UInt<1>("h00"), _T_845) @[Lookup.scala 11:37]
    node _T_847 = mux(_T_45, UInt<1>("h00"), _T_846) @[Lookup.scala 11:37]
    node _T_848 = mux(_T_41, UInt<1>("h00"), _T_847) @[Lookup.scala 11:37]
    node _T_849 = mux(_T_37, UInt<1>("h00"), _T_848) @[Lookup.scala 11:37]
    node ctrlSignals_12 = mux(_T_33, UInt<1>("h00"), _T_849) @[Lookup.scala 11:37]
    io.pc_sel <= ctrlSignals_0 @[Control.scala 149:16]
    node _T_850 = bits(ctrlSignals_6, 0, 0) @[Control.scala 150:34]
    io.inst_kill <= _T_850 @[Control.scala 150:16]
    io.A_sel <= ctrlSignals_1 @[Control.scala 153:14]
    io.B_sel <= ctrlSignals_2 @[Control.scala 154:14]
    io.imm_sel <= ctrlSignals_3 @[Control.scala 155:14]
    io.alu_op <= ctrlSignals_4 @[Control.scala 156:14]
    io.br_type <= ctrlSignals_5 @[Control.scala 157:14]
    io.st_type <= ctrlSignals_7 @[Control.scala 158:14]
    io.ld_type <= ctrlSignals_8 @[Control.scala 161:14]
    io.wb_sel <= ctrlSignals_9 @[Control.scala 162:14]
    node _T_851 = bits(ctrlSignals_10, 0, 0) @[Control.scala 163:33]
    io.wb_en <= _T_851 @[Control.scala 163:14]
    io.csr_cmd <= ctrlSignals_11 @[Control.scala 164:14]
    io.illegal <= ctrlSignals_12 @[Control.scala 165:14]
    
  module Core : 
    input clock : Clock
    input reset : UInt<1>
    output io : {host : {flip fromhost : {valid : UInt<1>, bits : UInt<32>}, tohost : UInt<32>}, flip icache : {flip abort : UInt<1>, flip req : {valid : UInt<1>, bits : {addr : UInt<32>, data : UInt<32>, mask : UInt<4>}}, resp : {valid : UInt<1>, bits : {data : UInt<32>}}}, flip dcache : {flip abort : UInt<1>, flip req : {valid : UInt<1>, bits : {addr : UInt<32>, data : UInt<32>, mask : UInt<4>}}, resp : {valid : UInt<1>, bits : {data : UInt<32>}}}}
    
    io is invalid
    io is invalid
    inst dpath of Datapath @[Core.scala 35:21]
    dpath.io is invalid
    dpath.clock <= clock
    dpath.reset <= reset
    inst ctrl of Control @[Core.scala 36:21]
    ctrl.io is invalid
    ctrl.clock <= clock
    ctrl.reset <= reset
    io.host.tohost <= dpath.io.host.tohost @[Core.scala 38:11]
    dpath.io.host.fromhost.bits <= io.host.fromhost.bits @[Core.scala 38:11]
    dpath.io.host.fromhost.valid <= io.host.fromhost.valid @[Core.scala 38:11]
    dpath.io.icache.resp.bits.data <= io.icache.resp.bits.data @[Core.scala 39:19]
    dpath.io.icache.resp.valid <= io.icache.resp.valid @[Core.scala 39:19]
    io.icache.req.bits.mask <= dpath.io.icache.req.bits.mask @[Core.scala 39:19]
    io.icache.req.bits.data <= dpath.io.icache.req.bits.data @[Core.scala 39:19]
    io.icache.req.bits.addr <= dpath.io.icache.req.bits.addr @[Core.scala 39:19]
    io.icache.req.valid <= dpath.io.icache.req.valid @[Core.scala 39:19]
    io.icache.abort <= dpath.io.icache.abort @[Core.scala 39:19]
    dpath.io.dcache.resp.bits.data <= io.dcache.resp.bits.data @[Core.scala 40:19]
    dpath.io.dcache.resp.valid <= io.dcache.resp.valid @[Core.scala 40:19]
    io.dcache.req.bits.mask <= dpath.io.dcache.req.bits.mask @[Core.scala 40:19]
    io.dcache.req.bits.data <= dpath.io.dcache.req.bits.data @[Core.scala 40:19]
    io.dcache.req.bits.addr <= dpath.io.dcache.req.bits.addr @[Core.scala 40:19]
    io.dcache.req.valid <= dpath.io.dcache.req.valid @[Core.scala 40:19]
    io.dcache.abort <= dpath.io.dcache.abort @[Core.scala 40:19]
    dpath.io.ctrl.illegal <= ctrl.io.illegal @[Core.scala 41:17]
    dpath.io.ctrl.csr_cmd <= ctrl.io.csr_cmd @[Core.scala 41:17]
    dpath.io.ctrl.wb_en <= ctrl.io.wb_en @[Core.scala 41:17]
    dpath.io.ctrl.wb_sel <= ctrl.io.wb_sel @[Core.scala 41:17]
    dpath.io.ctrl.ld_type <= ctrl.io.ld_type @[Core.scala 41:17]
    dpath.io.ctrl.st_type <= ctrl.io.st_type @[Core.scala 41:17]
    dpath.io.ctrl.br_type <= ctrl.io.br_type @[Core.scala 41:17]
    dpath.io.ctrl.alu_op <= ctrl.io.alu_op @[Core.scala 41:17]
    dpath.io.ctrl.imm_sel <= ctrl.io.imm_sel @[Core.scala 41:17]
    dpath.io.ctrl.B_sel <= ctrl.io.B_sel @[Core.scala 41:17]
    dpath.io.ctrl.A_sel <= ctrl.io.A_sel @[Core.scala 41:17]
    dpath.io.ctrl.inst_kill <= ctrl.io.inst_kill @[Core.scala 41:17]
    dpath.io.ctrl.pc_sel <= ctrl.io.pc_sel @[Core.scala 41:17]
    ctrl.io.inst <= dpath.io.ctrl.inst @[Core.scala 41:17]
    
  module CoreTester : 
    input clock : Clock
    input reset : UInt<1>
    output io : {}
    
    io is invalid
    io is invalid
    inst dut of Core @[CoreTests.scala 15:19]
    dut.io is invalid
    dut.clock <= clock
    dut.reset <= reset
    dut.io.host.fromhost.bits <= UInt<1>("h00") @[CoreTests.scala 16:29]
    dut.io.host.fromhost.valid <= UInt<1>("h00") @[CoreTests.scala 17:30]
    node _T_164 = cat(UInt<32>("h010101"), UInt<32>("h0464c457f")) @[Cat.scala 30:58]
    node _T_165 = cat(UInt<32>("h0f30002"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_166 = cat(_T_165, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_167 = cat(_T_166, _T_164) @[Cat.scala 30:58]
    node _T_168 = cat(UInt<32>("h0100"), UInt<32>("h01")) @[Cat.scala 30:58]
    node _T_169 = cat(UInt<32>("h00"), UInt<32>("h0454")) @[Cat.scala 30:58]
    node _T_170 = cat(_T_169, UInt<32>("h034")) @[Cat.scala 30:58]
    node _T_171 = cat(_T_170, _T_168) @[Cat.scala 30:58]
    node _T_172 = cat(_T_171, _T_167) @[Cat.scala 30:58]
    node _T_173 = cat(UInt<32>("h0280001"), UInt<32>("h0200034")) @[Cat.scala 30:58]
    node _T_174 = cat(UInt<32>("h00"), UInt<32>("h01")) @[Cat.scala 30:58]
    node _T_175 = cat(_T_174, UInt<32>("h020005")) @[Cat.scala 30:58]
    node _T_176 = cat(_T_175, _T_173) @[Cat.scala 30:58]
    node _T_177 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_178 = cat(UInt<32>("h05"), UInt<32>("h0260")) @[Cat.scala 30:58]
    node _T_179 = cat(_T_178, UInt<32>("h0260")) @[Cat.scala 30:58]
    node _T_180 = cat(_T_179, _T_177) @[Cat.scala 30:58]
    node _T_181 = cat(_T_180, _T_176) @[Cat.scala 30:58]
    node _T_182 = cat(_T_181, _T_172) @[Cat.scala 30:58]
    node _T_183 = cat(UInt<32>("h00"), UInt<32>("h02000")) @[Cat.scala 30:58]
    node _T_184 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_185 = cat(_T_184, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_186 = cat(_T_185, _T_183) @[Cat.scala 30:58]
    node _T_187 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_188 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_189 = cat(_T_188, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_190 = cat(_T_189, _T_187) @[Cat.scala 30:58]
    node _T_191 = cat(_T_190, _T_186) @[Cat.scala 30:58]
    node _T_192 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_193 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_194 = cat(_T_193, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_195 = cat(_T_194, _T_192) @[Cat.scala 30:58]
    node _T_196 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_197 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_198 = cat(_T_197, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_199 = cat(_T_198, _T_196) @[Cat.scala 30:58]
    node _T_200 = cat(_T_199, _T_195) @[Cat.scala 30:58]
    node _T_201 = cat(_T_200, _T_191) @[Cat.scala 30:58]
    node _T_202 = cat(_T_201, _T_182) @[Cat.scala 30:58]
    node _T_203 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_204 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_205 = cat(_T_204, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_206 = cat(_T_205, _T_203) @[Cat.scala 30:58]
    node _T_207 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_208 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_209 = cat(_T_208, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_210 = cat(_T_209, _T_207) @[Cat.scala 30:58]
    node _T_211 = cat(_T_210, _T_206) @[Cat.scala 30:58]
    node _T_212 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_213 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_214 = cat(_T_213, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_215 = cat(_T_214, _T_212) @[Cat.scala 30:58]
    node _T_216 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_217 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_218 = cat(_T_217, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_219 = cat(_T_218, _T_216) @[Cat.scala 30:58]
    node _T_220 = cat(_T_219, _T_215) @[Cat.scala 30:58]
    node _T_221 = cat(_T_220, _T_211) @[Cat.scala 30:58]
    node _T_222 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_223 = cat(UInt<32>("h0f17"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_224 = cat(_T_223, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_225 = cat(_T_224, _T_222) @[Cat.scala 30:58]
    node _T_226 = cat(UInt<32>("h034102ff3"), UInt<32>("h0158f0f13")) @[Cat.scala 30:58]
    node _T_227 = cat(UInt<32>("h0ef0f0f13"), UInt<32>("h0f17")) @[Cat.scala 30:58]
    node _T_228 = cat(_T_227, UInt<32>("h07ff0c63")) @[Cat.scala 30:58]
    node _T_229 = cat(_T_228, _T_226) @[Cat.scala 30:58]
    node _T_230 = cat(_T_229, _T_225) @[Cat.scala 30:58]
    node _T_231 = cat(UInt<32>("h0f17"), UInt<32>("h020f1863")) @[Cat.scala 30:58]
    node _T_232 = cat(UInt<32>("h0ed9ff06f"), UInt<32>("h0f0463")) @[Cat.scala 30:58]
    node _T_233 = cat(_T_232, UInt<32>("h0ee4f0f13")) @[Cat.scala 30:58]
    node _T_234 = cat(_T_233, _T_231) @[Cat.scala 30:58]
    node _T_235 = cat(UInt<32>("h013"), UInt<32>("h0540006f")) @[Cat.scala 30:58]
    node _T_236 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_237 = cat(_T_236, UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_238 = cat(_T_237, _T_235) @[Cat.scala 30:58]
    node _T_239 = cat(_T_238, _T_234) @[Cat.scala 30:58]
    node _T_240 = cat(_T_239, _T_230) @[Cat.scala 30:58]
    node _T_241 = cat(_T_240, _T_221) @[Cat.scala 30:58]
    node _T_242 = cat(_T_241, _T_202) @[Cat.scala 30:58]
    node _T_243 = cat(UInt<32>("h0fa0f5ee3"), UInt<32>("h034202f73")) @[Cat.scala 30:58]
    node _T_244 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_245 = cat(_T_244, UInt<32>("h030500073")) @[Cat.scala 30:58]
    node _T_246 = cat(_T_245, _T_243) @[Cat.scala 30:58]
    node _T_247 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_248 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_249 = cat(_T_248, UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_250 = cat(_T_249, _T_247) @[Cat.scala 30:58]
    node _T_251 = cat(_T_250, _T_246) @[Cat.scala 30:58]
    node _T_252 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_253 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_254 = cat(_T_253, UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_255 = cat(_T_254, _T_252) @[Cat.scala 30:58]
    node _T_256 = cat(UInt<32>("h0539e6e13"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_257 = cat(UInt<32>("h013"), UInt<32>("h0ffdff06f")) @[Cat.scala 30:58]
    node _T_258 = cat(_T_257, UInt<32>("h0780e1073")) @[Cat.scala 30:58]
    node _T_259 = cat(_T_258, _T_256) @[Cat.scala 30:58]
    node _T_260 = cat(_T_259, _T_255) @[Cat.scala 30:58]
    node _T_261 = cat(_T_260, _T_251) @[Cat.scala 30:58]
    node _T_262 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_263 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_264 = cat(_T_263, UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_265 = cat(_T_264, _T_262) @[Cat.scala 30:58]
    node _T_266 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_267 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_268 = cat(_T_267, UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_269 = cat(_T_268, _T_266) @[Cat.scala 30:58]
    node _T_270 = cat(_T_269, _T_265) @[Cat.scala 30:58]
    node _T_271 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_272 = cat(UInt<32>("h034102ff3"), UInt<32>("h098f0f13")) @[Cat.scala 30:58]
    node _T_273 = cat(_T_272, UInt<32>("h0f17")) @[Cat.scala 30:58]
    node _T_274 = cat(_T_273, _T_271) @[Cat.scala 30:58]
    node _T_275 = cat(UInt<32>("h0f17"), UInt<32>("h0fbff0ce3")) @[Cat.scala 30:58]
    node _T_276 = cat(UInt<32>("h0e25ff06f"), UInt<32>("h0f0463")) @[Cat.scala 30:58]
    node _T_277 = cat(_T_276, UInt<32>("h0e30f0f13")) @[Cat.scala 30:58]
    node _T_278 = cat(_T_277, _T_275) @[Cat.scala 30:58]
    node _T_279 = cat(_T_278, _T_274) @[Cat.scala 30:58]
    node _T_280 = cat(_T_279, _T_270) @[Cat.scala 30:58]
    node _T_281 = cat(_T_280, _T_261) @[Cat.scala 30:58]
    node _T_282 = cat(UInt<32>("h013"), UInt<32>("h0fa1ff06f")) @[Cat.scala 30:58]
    node _T_283 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_284 = cat(_T_283, UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_285 = cat(_T_284, _T_282) @[Cat.scala 30:58]
    node _T_286 = cat(UInt<32>("h013"), UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_287 = cat(UInt<32>("h051063"), UInt<32>("h0f1002573")) @[Cat.scala 30:58]
    node _T_288 = cat(_T_287, UInt<32>("h013")) @[Cat.scala 30:58]
    node _T_289 = cat(_T_288, _T_286) @[Cat.scala 30:58]
    node _T_290 = cat(_T_289, _T_285) @[Cat.scala 30:58]
    node _T_291 = cat(UInt<32>("h055863"), UInt<32>("h0f0002573")) @[Cat.scala 30:58]
    node _T_292 = cat(UInt<32>("h0400006f"), UInt<32>("h0100e13")) @[Cat.scala 30:58]
    node _T_293 = cat(_T_292, UInt<32>("h0ff0000f")) @[Cat.scala 30:58]
    node _T_294 = cat(_T_293, _T_291) @[Cat.scala 30:58]
    node _T_295 = cat(UInt<32>("h0297"), UInt<32>("h0e13")) @[Cat.scala 30:58]
    node _T_296 = cat(UInt<32>("h010129073"), UInt<32>("h028463")) @[Cat.scala 30:58]
    node _T_297 = cat(_T_296, UInt<32>("h0de028293")) @[Cat.scala 30:58]
    node _T_298 = cat(_T_297, _T_295) @[Cat.scala 30:58]
    node _T_299 = cat(_T_298, _T_294) @[Cat.scala 30:58]
    node _T_300 = cat(_T_299, _T_290) @[Cat.scala 30:58]
    node _T_301 = cat(UInt<32>("h03002b073"), UInt<32>("h01f800293")) @[Cat.scala 30:58]
    node _T_302 = cat(UInt<32>("h034129073"), UInt<32>("h01428293")) @[Cat.scala 30:58]
    node _T_303 = cat(_T_302, UInt<32>("h0297")) @[Cat.scala 30:58]
    node _T_304 = cat(_T_303, _T_301) @[Cat.scala 30:58]
    node _T_305 = cat(UInt<32>("h010000073"), UInt<32>("h0f1002573")) @[Cat.scala 30:58]
    node _T_306 = cat(UInt<32>("h040006f"), UInt<32>("h0100e13")) @[Cat.scala 30:58]
    node _T_307 = cat(_T_306, UInt<32>("h0ff0000f")) @[Cat.scala 30:58]
    node _T_308 = cat(_T_307, _T_305) @[Cat.scala 30:58]
    node _T_309 = cat(_T_308, _T_304) @[Cat.scala 30:58]
    node _T_310 = cat(UInt<32>("h0ffdff06f"), UInt<32>("h073")) @[Cat.scala 30:58]
    node _T_311 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_312 = cat(_T_311, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_313 = cat(_T_312, _T_310) @[Cat.scala 30:58]
    node _T_314 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_315 = cat(UInt<32>("h00"), UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_316 = cat(_T_315, UInt<32>("h00")) @[Cat.scala 30:58]
    node _T_317 = cat(_T_316, _T_314) @[Cat.scala 30:58]
    node _T_318 = cat(_T_317, _T_313) @[Cat.scala 30:58]
    node _T_319 = cat(_T_318, _T_309) @[Cat.scala 30:58]
    node _T_320 = cat(_T_319, _T_300) @[Cat.scala 30:58]
    node _T_321 = cat(_T_320, _T_281) @[Cat.scala 30:58]
    node _T_322 = cat(_T_321, _T_242) @[Cat.scala 30:58]
    wire _hex : UInt<5120>[1] @[CoreTests.scala 19:17]
    _hex is invalid @[CoreTests.scala 19:17]
    _hex[0] <= _T_322 @[CoreTests.scala 19:17]
    cmem imem : UInt<32>[1048576] @[CoreTests.scala 20:17]
    cmem dmem : UInt<32>[1048576] @[CoreTests.scala 21:17]
    reg state : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 26:44]
    reg cycle : UInt<32>, clock with : (reset => (reset, UInt<32>("h00"))) @[Reg.scala 26:44]
    node _T_336 = eq(state, UInt<1>("h00")) @[CoreTests.scala 25:36]
    reg cntr : UInt<8>, clock with : (reset => (reset, UInt<8>("h00"))) @[Counter.scala 15:29]
    when _T_336 : @[Counter.scala 59:17]
      node _T_339 = eq(cntr, UInt<8>("h0ff")) @[Counter.scala 23:24]
      node _T_341 = add(cntr, UInt<1>("h01")) @[Counter.scala 24:22]
      node _T_342 = tail(_T_341, 1) @[Counter.scala 24:22]
      cntr <= _T_342 @[Counter.scala 24:13]
      skip @[Counter.scala 59:17]
    node done = and(_T_336, _T_339) @[Counter.scala 60:20]
    node iaddr = div(dut.io.icache.req.bits.addr, UInt<3>("h04")) @[CoreTests.scala 26:43]
    node daddr = div(dut.io.dcache.req.bits.addr, UInt<3>("h04")) @[CoreTests.scala 27:43]
    node _T_346 = bits(dut.io.dcache.req.bits.mask, 0, 0) @[CoreTests.scala 29:64]
    node _T_347 = and(dut.io.dcache.req.valid, _T_346) @[CoreTests.scala 29:34]
    node _T_348 = bits(daddr, 19, 0)
    infer mport _T_349 = dmem[_T_348], clock
    node _T_350 = mux(_T_347, dut.io.dcache.req.bits.data, _T_349) @[CoreTests.scala 29:9]
    node _T_351 = bits(_T_350, 7, 0) @[CoreTests.scala 30:51]
    node _T_353 = dshl(_T_351, UInt<1>("h00")) @[CoreTests.scala 30:69]
    node _T_354 = or(UInt<32>("h00"), _T_353) @[CoreTests.scala 28:80]
    node _T_355 = bits(dut.io.dcache.req.bits.mask, 1, 1) @[CoreTests.scala 29:64]
    node _T_356 = and(dut.io.dcache.req.valid, _T_355) @[CoreTests.scala 29:34]
    node _T_357 = bits(daddr, 19, 0)
    infer mport _T_358 = dmem[_T_357], clock
    node _T_359 = mux(_T_356, dut.io.dcache.req.bits.data, _T_358) @[CoreTests.scala 29:9]
    node _T_360 = bits(_T_359, 15, 8) @[CoreTests.scala 30:51]
    node _T_362 = dshl(_T_360, UInt<4>("h08")) @[CoreTests.scala 30:69]
    node _T_363 = or(_T_354, _T_362) @[CoreTests.scala 28:80]
    node _T_364 = bits(dut.io.dcache.req.bits.mask, 2, 2) @[CoreTests.scala 29:64]
    node _T_365 = and(dut.io.dcache.req.valid, _T_364) @[CoreTests.scala 29:34]
    node _T_366 = bits(daddr, 19, 0)
    infer mport _T_367 = dmem[_T_366], clock
    node _T_368 = mux(_T_365, dut.io.dcache.req.bits.data, _T_367) @[CoreTests.scala 29:9]
    node _T_369 = bits(_T_368, 23, 16) @[CoreTests.scala 30:51]
    node _T_371 = dshl(_T_369, UInt<5>("h010")) @[CoreTests.scala 30:69]
    node _T_372 = or(_T_363, _T_371) @[CoreTests.scala 28:80]
    node _T_373 = bits(dut.io.dcache.req.bits.mask, 3, 3) @[CoreTests.scala 29:64]
    node _T_374 = and(dut.io.dcache.req.valid, _T_373) @[CoreTests.scala 29:34]
    node _T_375 = bits(daddr, 19, 0)
    infer mport _T_376 = dmem[_T_375], clock
    node _T_377 = mux(_T_374, dut.io.dcache.req.bits.data, _T_376) @[CoreTests.scala 29:9]
    node _T_378 = bits(_T_377, 31, 24) @[CoreTests.scala 30:51]
    node _T_380 = dshl(_T_378, UInt<5>("h018")) @[CoreTests.scala 30:69]
    node write = or(_T_372, _T_380) @[CoreTests.scala 28:80]
    node _T_381 = eq(state, UInt<1>("h00")) @[CoreTests.scala 32:22]
    dut.reset <= _T_381 @[CoreTests.scala 32:13]
    node _T_382 = eq(state, UInt<1>("h01")) @[CoreTests.scala 33:37]
    dut.io.icache.resp.valid <= _T_382 @[CoreTests.scala 33:28]
    node _T_383 = eq(state, UInt<1>("h01")) @[CoreTests.scala 34:37]
    dut.io.dcache.resp.valid <= _T_383 @[CoreTests.scala 34:28]
    node _T_384 = bits(iaddr, 19, 0)
    infer mport _T_385 = imem[_T_384], clock
    reg _T_386 : UInt, clock @[Reg.scala 14:44]
    _T_386 <= _T_385 @[Reg.scala 14:44]
    dut.io.icache.resp.bits.data <= _T_386 @[CoreTests.scala 35:32]
    node _T_387 = bits(daddr, 19, 0)
    infer mport _T_388 = dmem[_T_387], clock
    reg _T_389 : UInt, clock @[Reg.scala 14:44]
    _T_389 <= _T_388 @[Reg.scala 14:44]
    dut.io.dcache.resp.bits.data <= _T_389 @[CoreTests.scala 36:32]
    wire chunk : UInt<32> @[CoreTests.scala 38:19]
    chunk is invalid @[CoreTests.scala 38:19]
    node _T_392 = dshr(cntr, UInt<4>("h08")) @[CoreTests.scala 39:22]
    node _T_395 = bits(cntr, 7, 0) @[CoreTests.scala 39:38]
    node _T_397 = mul(_T_395, UInt<6>("h020")) @[CoreTests.scala 39:45]
    node _T_398 = dshr(_hex[UInt<1>("h00")], _T_397) @[CoreTests.scala 39:30]
    chunk <= _T_398 @[CoreTests.scala 39:9]
    node _T_400 = eq(reset, UInt<1>("h00")) @[CoreTests.scala 41:9]
    when _T_400 : @[CoreTests.scala 41:9]
      printf(clock, UInt<1>(1), "state: %d, cntr %d cycl %d\n", state, cntr, cycle) @[CoreTests.scala 41:9]
      skip @[CoreTests.scala 41:9]
    node _T_401 = eq(UInt<1>("h00"), state) @[Conditional.scala 29:28]
    when _T_401 : @[Conditional.scala 29:59]
      infer mport _T_402 = imem[cntr], clock
      _T_402 <= chunk @[CoreTests.scala 45:18]
      infer mport _T_403 = dmem[cntr], clock
      _T_403 <= chunk @[CoreTests.scala 46:18]
      when done : @[CoreTests.scala 47:18]
        state <= UInt<1>("h01") @[CoreTests.scala 47:26]
        skip @[CoreTests.scala 47:18]
      skip @[Conditional.scala 29:59]
    node _T_404 = eq(UInt<1>("h01"), state) @[Conditional.scala 29:28]
    when _T_404 : @[Conditional.scala 29:59]
      when dut.io.icache.req.valid : @[CoreTests.scala 51:37]
        skip @[CoreTests.scala 51:37]
      when dut.io.dcache.req.valid : @[CoreTests.scala 54:37]
        node _T_406 = neq(dut.io.dcache.req.bits.mask, UInt<1>("h00")) @[CoreTests.scala 55:42]
        when _T_406 : @[CoreTests.scala 55:47]
          node _T_407 = bits(daddr, 19, 0)
          infer mport _T_408 = dmem[_T_407], clock
          _T_408 <= write @[CoreTests.scala 56:23]
          skip @[CoreTests.scala 55:47]
        node _T_410 = eq(_T_406, UInt<1>("h00")) @[CoreTests.scala 55:47]
        when _T_410 : @[CoreTests.scala 58:21]
          skip @[CoreTests.scala 58:21]
        skip @[CoreTests.scala 54:37]
      node _T_412 = add(cycle, UInt<1>("h01")) @[CoreTests.scala 62:22]
      node _T_413 = tail(_T_412, 1) @[CoreTests.scala 62:22]
      cycle <= _T_413 @[CoreTests.scala 62:13]
      node _T_415 = lt(cycle, UInt<14>("h03a98")) @[CoreTests.scala 63:20]
      node _T_416 = or(_T_415, reset) @[CoreTests.scala 63:13]
      node _T_418 = eq(_T_416, UInt<1>("h00")) @[CoreTests.scala 63:13]
      when _T_418 : @[CoreTests.scala 63:13]
        printf(clock, UInt<1>(1), "Assertion failed\n    at CoreTests.scala:63 assert(cycle < maxcycles.U)\n") @[CoreTests.scala 63:13]
        stop(clock, UInt<1>(1), 1) @[CoreTests.scala 63:13]
        skip @[CoreTests.scala 63:13]
      node _T_420 = neq(dut.io.host.tohost, UInt<1>("h00")) @[CoreTests.scala 64:31]
      when _T_420 : @[CoreTests.scala 64:40]
        node _T_422 = eq(reset, UInt<1>("h00")) @[CoreTests.scala 65:15]
        when _T_422 : @[CoreTests.scala 65:15]
          printf(clock, UInt<1>(1), "cycles: %d\n", cycle) @[CoreTests.scala 65:15]
          skip @[CoreTests.scala 65:15]
        node _T_424 = dshr(dut.io.host.tohost, UInt<1>("h01")) @[CoreTests.scala 66:36]
        node _T_426 = eq(_T_424, UInt<1>("h00")) @[CoreTests.scala 66:44]
        node _T_427 = or(_T_426, reset) @[CoreTests.scala 66:15]
        node _T_429 = eq(_T_427, UInt<1>("h00")) @[CoreTests.scala 66:15]
        when _T_429 : @[CoreTests.scala 66:15]
          printf(clock, UInt<1>(1), "Assertion failed: * tohost: %d *\n\n    at CoreTests.scala:66 assert((dut.io.host.tohost >> 1.U) === 0.U,\n", dut.io.host.tohost) @[CoreTests.scala 66:15]
          stop(clock, UInt<1>(1), 1) @[CoreTests.scala 66:15]
          skip @[CoreTests.scala 66:15]
        node _T_431 = eq(reset, UInt<1>("h00")) @[CoreTests.scala 68:13]
        when _T_431 : @[CoreTests.scala 68:13]
          stop(clock, UInt<1>(1), 0) @[CoreTests.scala 68:13]
          skip @[CoreTests.scala 68:13]
        node _T_433 = eq(reset, UInt<1>("h00")) @[CoreTests.scala 68:21]
        when _T_433 : @[CoreTests.scala 68:21]
          stop(clock, UInt<1>(1), 0) @[CoreTests.scala 68:21]
          skip @[CoreTests.scala 68:21]
        skip @[CoreTests.scala 64:40]
      skip @[Conditional.scala 29:59]
    
